是否有可能消除ASP.NET中的名称错位?

时间:2012-01-31 23:59:27

标签: asp.net

我知道我可以在ASP.NET 4.0中消除ID修改,但是我还可以消除名称修改吗?这看起来像我能做的最好:

<input name="ctl00$body$txtName" type="text" id="txtName" />

这是对的吗?

2 个答案:

答案 0 :(得分:2)

ASP.NET依赖名称修改将已发布的表单数据路由到嵌套命名容器中的输入控件。避免名称损失的方法是:

  1. 不要使用嵌套的命名容器,例如母版页或用户控件。直接放在.aspx页面上的输入控件将具有简单的名称。
  2. 不要使用标准的ASP.NET输入控件。相反,你可以:
    • <input type="text" name="name" />(不包含runat="server")放入.ascx / .aspx,并通过Request.Form["name"]访问其值。
    • 创建执行相同操作的自定义服务器控件。

答案 1 :(得分:0)

好的,所以这是交易。我需要动态更改表单元素的值(服务器端),我需要保留MasterPage,并且我在页面上也有面板。没有办法解决它。

我所做的是使用服务器端“黄色标签”和公共变量:

HTML:

<input type='hidden' name='x_login' id='x_login' value="<%= x_login %>" />

代码:

Public x_login As String = "some value"

并在回发后访问该值:

Request.Form("x_login")

感谢迈克尔刘在那里的最后一点回答。因为这个原因,我提出了他的答案。