如何检索 HTML POST 数据以在 ASP.NET WebForms 中进行操作?

Posted

技术标签:

【中文标题】如何检索 HTML POST 数据以在 ASP.NET WebForms 中进行操作?【英文标题】:How do I retrieve HTML POST data for manipulation in ASP.NET WebForms? 【发布时间】:2012-01-20 09:11:45 【问题描述】:

我有以下html

<html>
    <body>

        <form runat="server">
        Name: <input type="text" name="name" />
        <br />
        <input type="submit" name="submit" />
        </form>

    </body>
</html>

如何检索“名称”文本框中的值并返回到网络服务器以在 ASP.NET WebForms 中进行操作?

(我知道 ASP.NET 内置控件及其可能性,但我正在寻找不使用内置 ASP.NET 控件的“干净”解决方案)

【问题讨论】:

【参考方案1】:

如果您不能或不想使用 asp.net 文本框,那么您可以像这样检索常规 html 文本框的名称:

string nameTextPosted = Request.Form["name"];

请注意,以这种方式创建的文本框不会像 asp.net 文本框那样在回发中自动保留其值。

【讨论】:

谢谢!像魅力一样工作!【参考方案2】:

ASP.net 包含 Html 服务器控件,以便像您一样喜欢 html 的人向后兼容。通过添加 runat="server" 和 id 属性使您的 html 标签成为服务器控件,您可以在服务器端代码中使用它们的 id 访问它们。

 <form runat="server">
    Name: <input type="text" name="name" id="name" runat="server" />
    <br />
    <input type="submit" name="submit" id="name1" runat="server" />
    </form>

现在你可以控制他们的行为了:

name.Value="Hellow World !"

【讨论】:

【参考方案3】:

您必须在每个控件中添加 id 和 runat="server"。像这样:

<input type="text" name="name" id="name" runat="server" />

最好像这样使用 asp:TextBox :

<asp:TextBox ID="name" runat="server"></asp:TextBox>

【讨论】:

【参考方案4】:

最简单的解决方案是将其转换为服务器端组件并通过其名称访问它。例如

<asp:TextBox Id="Name" runat="server"></asp:TextBox>

...

string name = Name.Text;

除非您有其他理由不使用组件,否则您只会无缘无故地让事情变得更加困难。

【讨论】:

谢谢!我知道内置的 ASP.NET 控件,但我正在寻找一种使用“干净”HTML 手动完成的方法。 @Alex 这是干净的 html。渲染后,它们就是 html 文本框。 我也知道 :-) 我不使用内置控件的原因是为了“弄脏我的手”与 html 部分..

以上是关于如何检索 HTML POST 数据以在 ASP.NET WebForms 中进行操作?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 aspx 中的 Gridview 行中检索主键以在 userControl.ascx 中使用?

在 Python 中检索 JSON 以响应 POST

如何使用 Http Post 从 WebView 中检索和修改 HTML 内容

如何从 vimeo 帐户检索视频源以在 exoplayer android 中播放?

如何全局保存一个人的 UID 以在 Swift 的任何 ViewController 中检索它

如何在控制器中检索 POST 数据