ASP.NET中html控件的行为

时间:2017-06-06 23:12:05

标签: html asp.net

我们说我有一个html输入框:

 <form id="form1" runat="server">
    <div>    
        <input id="Text1" type="text"/>
        <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click"/>
    </div>
</form>

如果我输入类似&#34; My Subjects&#34;进入输入,然后单击按钮,输入框中的文本将消失,这是我不太明白的事情:

这是一个帖子请求,因为&#34;我的主题&#34;将被提交到服务器,所以当服务器呈现html时,它应该将文本添加到输入文本框然后将html文档发送回浏览器,我的理解是不正确的?

2 个答案:

答案 0 :(得分:2)

ASP.NET WebForms只添加&#34;回发魔法&#34;如果HTML元素已应用runat="server"属性,则将其视为静态纯文本。

添加runat="server",它将起作用:

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

答案 1 :(得分:2)

  

我的理解不正确吗?

不,我不敢。没有这种行为自动的机制。您必须编写代码或使用一些工具来执行此操作。 ASP.NET Framework内部有代码,用于服务器控件,即runat="server"。 (查看ViewState之类的内容,并查看ASP.NET自动添加到页面的隐藏字段。)

如果要使用请求中包含的值填充页面,则可以在该页面的代码中执行此操作。要做到这一点,首先你需要输入一个name,因此它包含在POST中:

<input id="Text1" type="text" name="Text1"/>

然后你可以在POST请求中找到值server-side,如:

Request.Form["Text1"]

从那里,您可以通过各种方式将其放在页面上,就像您希望在页面中放置在页面上的任何其他值一样。