我正在玩ASP.NET MVC Html.Helpers
,我注意到例如:
Html.Textbox("test");
会将name属性呈现为"name=test"
,id
标记将为"id=test"
但是当我这样做时:
<%= Html.TextBox("go", null, new { @name = "test2", @id = "test2", @class = "test2" })%>
id
将为"id=test2"
,但name
将为"name=go"
为什么不被覆盖?
我也真的不明白name
标签实际上是做什么的。我不认为我曾经使用过。
P.S
我知道“name”和“id”可能不需要转义只是“class”,因为它是一个关键字,但我只为所有这些做,所以我不忘记做它或者甚至必须记住某些东西是否是关键词。
答案 0 :(得分:3)
在服务器端访问表单元素的值时使用name属性。像这样:
string val = Request.Name["go"];
至于指定name属性,那就是Html.TextBox
方法的第一个参数。
答案 1 :(得分:2)
不确定它会对提问者有所帮助,但您需要使用正确的套管。要设置“名称”属性,请使用:
<%= Html.TextBox("go", null, new { Name = "test2", @id = "test2", @class = "test2" })%>
答案 2 :(得分:1)
ID是DOM树中的唯一标识符,name是表单中的标识符,并且不需要是唯一的,在提交表单后使用名称。
答案 3 :(得分:1)
因为它是一个“帮助者”,帮助您在创建文本框时不要在90%的情况下键入名称。
您可以不使用它们,只需输入:
即可<input type="textbox"
name="theNameIReallyWant"
value="<%= model.theNameOfThePropertyInTheModel %>">
或者更好的是,创建自己的TextBoxWithCustomName
帮助