我们说我有一个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文档发送回浏览器,我的理解是不正确的?
答案 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"]
从那里,您可以通过各种方式将其放在页面上,就像您希望在页面中放置在页面上的任何其他值一样。