【问题标题】:Retrieving data from a POST method in ASP.NET从 ASP.NET 中的 POST 方法中检索数据
【发布时间】:2011-11-26 15:44:00
【问题描述】:

我正在使用 ASP.NET。

有一个系统需要将数据发布到我的网站,而他们所要求的只是让我为他们提供一个 URL。 所以我给了他们我的网址http://www.example.com/Test.aspx

现在我不知道他们是如何发布它的,但现在在我的 Test.aspx 页面上,我需要编写代码来将该数据保存到数据库中。

但是这将如何工作以及我必须在我的 Test.aspx 页面上做什么?

我在我的页面加载事件中编写了一些代码,该代码在页面加载时向我发送了一封电子邮件,以查看他们是否真的点击了页面,并且看起来它们似乎不均匀?

【问题讨论】:

    标签: c# asp.net vb.net methods postback


    【解决方案1】:

    请求中的数据(内容、输入、文件、查询字符串值)都在这个对象上HttpContext.Current.Request
    阅读发布的内容

    StreamReader reader = new StreamReader(HttpContext.Current.Request.InputStream);
    string requestFromPost = reader.ReadToEnd();
    

    浏览所有输入

    foreach (string key in HttpContext.Current.Request.Form.AllKeys)
    {
       string value = HttpContext.Current.Request.Form[key];
    }
    

    【讨论】:

    • 很好,我们可以将它与实体框架中的实体(表)映射吗??
    • 也许尝试 MVC 或 Web Api 来完成这项工作? :D
    • 我正在使用 Web API 但不知道如何映射实体?
    【解决方案2】:

    您可以使用与此类似的代码 (C#) 获取发布到页面的表单值 -

    string formValue;
    if (!string.IsNullOrEmpty(Request.Form["txtFormValue"]))
    {
      formValue= Request.Form["txtFormValue"];
    }
    

    或者这个(VB)

    Dim formValue As String
    If Not String.IsNullOrEmpty(Request.Form("txtFormValue")) Then
        formValue = Request.Form("txtFormValue")
    End If
    

    一旦获得所需的值,您就可以构造 SQL 语句并将数据写入数据库。

    【讨论】:

    • 那么 txtFormValue 将成为传递给我的 URL 的参数之一?
    • 是的,它会 - 您需要根据发布给您的内容调整您在 Request.Form 集合中检查的值的名称。
    • 但我必须将此代码放在我的 PAGE LOAD 事件中吗?当对那个 URL 的 POST 发生时,它甚至会加载页面吗?
    • PAGE LOAD 是放置代码的好地方,因为当数据发布到页面时应该触发该事件。您可以使用诸如 Fiddler 之类的工具来测试您页面上的帖子。
    • @Etienne,页面生命周期的所有步骤(其中Load 是一个)无论 GET 还是 POST 都会被调用。在 POST 上还会调用一些其他的。强烈建议您阅读 ASP.NET Page Life Cycle Overview 以了解 ASP.NET 的工作原理,然后再进一步了解。
    【解决方案3】:

    您需要在Test.aspx.cs 文件的Page_Load 方法中检查(在/Quick Watch 上放置断点)Request 对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-23
      • 2020-05-10
      • 2019-03-14
      • 2020-01-09
      • 1970-01-01
      • 1970-01-01
      • 2020-11-14
      相关资源
      最近更新 更多