【问题标题】:How do I retrieve HTML POST data for manipulation in ASP.NET WebForms?如何检索 HTML POST 数据以在 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 控件的“干净”解决方案)

【问题讨论】:

    标签: asp.net html webforms


    【解决方案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 部分..
        猜你喜欢
        • 1970-01-01
        • 2011-09-23
        • 1970-01-01
        • 2011-03-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-14
        • 1970-01-01
        相关资源
        最近更新 更多