为什么我不能使用Html.Helpers在ASP.NET MVC表单中指定`name`属性?

时间:2009-07-22 14:13:26

标签: asp.net-mvc html-helper

我正在玩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”,因为它是一个关键字,但我只为所有这些做,所以我不忘记做它或者甚至必须记住某些东西是否是关键词。

4 个答案:

答案 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帮助