1

如果我有一个标准的 HTML 文本框:我可以使用 Request.Form 检索值。

但是我该如何从服务器端填充这个文本框呢?我试过

Request.Form["txtTest"] = "blah"; 

但有一个只读错误。

4

2 回答 2

2

如果您希望在服务器端通过其 id 访问控件(根据 .net 控件)获得一流的支持,则需要使其具有 runat="server" 标记。

否则,您可以通过在代码中使用属性并使用数据绑定从 aspx 页面上的 this 中提取值来动态设置值,例如

<input type=text value="<%=PropertyInCodeBehindClass %>" />

public string PropertyInCodeBehindClass
{
  get;
  set;
}
于 2010-01-06T16:15:56.357 回答
0

请记住,在您的服务器代码运行时,客户端文本框不存在。托管控件的 html 页面已作为新请求提交给服务器,并且 Web 浏览器希望您以全新的页面进行响应。在该响应到达之前,浏览器将显示页面,但这只是一个方便的外壳。保存你的文本框的 DOM 已经消失了,你还没有创建一个新的。您不能通过更新请求中的属性来直接更改您的响应。

这意味着您需要使用控件的服务器端表示。如果它是服务器控件,您可以尝试txtTest.Text = "blah"; 否则,您需要找到生成该输入标记的位置并适当地更改内容。

总是有两个;不多不少。一个请求和一个响应。

于 2010-01-06T16:38:53.333 回答