2009-07-22 19 views
2

我玩弄了ASP.NET MVC Html.Helpers和我注意到,例如說:爲什麼我不能在使用Html.Helpers的ASP.NET MVC表單中指定`name`屬性?

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標籤實際上做。我不認爲我曾經使用過。

PS

據我所知,「姓名」和「身份證」可能不需要進行才躲過了「階級」一詞,因爲它是一個關鍵字,但我只是做了所有的人,這樣我不要忘了這麼做,或者不得不記得是否有關鍵字。

回答

3

訪問服務器端的表單元素值時使用name屬性。像這樣:

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

至於指定的name屬性,以及這就是Html.TextBox方法的第一個參數是有什麼。

+0

啊好吧,不能相信一個飛過我的頭。參數名稱被稱爲「名稱」不能相信我無法連接點。 那麼我想我應該問他們爲什麼要你指定名稱而不是ID? 我正在建立自己的自定義html幫手,我應該只是做他們只是要求他們指定名稱? – chobo2 2009-07-22 14:55:14

1

ID是在DOM樹中唯一的標識符,名稱是形式中的標識符,並且它不需要是唯一的,名稱被提交表單後使用。

1

因爲它是一個「助手」幫你不在的情況下,90%,當你創建一個文本框鍵入名稱。

您可以自由使用它們,只是類型:

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

或更好,創建自己的TextBoxWithCustomName幫手

2

不知道它會幫助提問者,但你需要使用正確的外殼。要設置「名稱」屬性使用:

<%= Html.TextBox("go", null, new { Name = "test2", @id = "test2", @class = "test2" })%> 
相關問題