2

我正在使用 ASP.NET MVC Html.Helpers,我注意到例如:

Html.Textbox("test");  

将呈现名称属性,"name=test"标签id将是"id=test"

但是当我这样做时:

<%= Html.TextBox("go", null, new { @name = "test2", @id = "test2", @class = "test2" })%>

id将是"id=test2"name将是"name=go"

为什么它不会被覆盖?

我也不太明白name标签的实际作用。我想我什至没有用过。

附言

我知道“name”和“id”可能不需要转义,只有“class”才能转义,因为它是一个关键字,但我只是为它们所有人都这样做,这样我就不会忘记这样做或拥有甚至记住某事是否是关键字。

4

4 回答 4

3

在服务器端访问该表单元素的值时使用 name 属性。像这样:

string val = Request.Name["go"];

至于指定 name 属性,这就是该Html.TextBox方法的第一个参数的用途。

于 2009-07-22T14:23:00.237 回答
2

不确定它是否会对提问者有所帮助,但您需要使用正确的外壳。要设置“名称”属性,请使用:

<%= Html.TextBox("go", null, new { Name = "test2", @id = "test2", @class = "test2" })%>
于 2012-03-09T21:39:32.087 回答
1

ID 是 DOM 树中的唯一标识,name 是表单内的标识,不需要唯一,提交表单后使用 name。

于 2009-07-22T14:15:44.490 回答
1

因为它是一个“帮手”,可帮助您在创建文本框时 90% 的情况下不键入名称。

您可以使用它们,只需键入:

<input type="textbox" 
       name="theNameIReallyWant" 
       value="<%= model.theNameOfThePropertyInTheModel %>">

或者更好的是,创建自己的TextBoxWithCustomName助手

于 2009-07-28T19:31:49.110 回答