Html asp.net中控件的name属性默认采用id

Html asp.net中控件的name属性默认采用id,html,asp.net,xml,Html,Asp.net,Xml,为什么asp.net中控件的“name”属性在asp.net中默认采用“id”值 <%var ctrl =new HtmlInputText(); ctrl.ID = "ctrl_id"; ctrl.Name="ctrl_name"; StringBuilder sb = new StringBuilder(); System.IO.StringWriter sw = new System.IO.StringWriter(sb); HtmlTextWriter

为什么asp.net中控件的“name”属性在asp.net中默认采用“id”值

<%var ctrl =new  HtmlInputText();



 ctrl.ID = "ctrl_id";
 ctrl.Name="ctrl_name";

   StringBuilder sb = new StringBuilder();
  System.IO.StringWriter sw = new System.IO.StringWriter(sb);
  HtmlTextWriter writer = new HtmlTextWriter(sw);

  ctrl.RenderControl(writer);%>
  <%=sb.ToString()%>

上面的代码呈现控件,但name属性的值为“ctrl\u id”,而不是“ctrl\u name”

请尝试:

ctrl.Attributes.Add("name","ctrl_name");

这是一种旁白,但如果您要向页面动态添加控件,通常最好将控件直接添加到另一个控件的子控件集合中,而不是响应。将其写入页面

var ctrl =new  HtmlInputText();
ctrl.ID = "ctrl_id";
ctrl.Name="ctrl_name";
//PlaceHolder1 has been defined in the ASPX page
PlaceHolder1.Controls.Add(ctrl);

我试过了!在这种情况下,我尝试了一些方法,比如ctrl.Attributes.Add(ctrl.Name,“ctrl_Name”);它的附加属性是ctrl\u id=“ctrl\u name”,我不明白它是如何使用ctrl\u id的,我说ctrl\u name使用ctrl.Attributes.Add(“name”,“ctrl\u name”);是的,是的,我已经试过了,但是名字仍然是“ctrl\u id”谢谢你,克里斯!但问题不在于addin控件,而在于我如何重写“name”的值,因为它默认接受id的值。您是否尝试过这两种方法:cntrl.Attributes.Add(“id”,“cntrl_id”);cntrl.Attributes.Add(“name”、“cntrl_name”);