2014-03-28 49 views
0

我使用MVC4,只是想知道的name屬性,是有可能更新HTML輔助的name屬性。我正在更新此操作方法期待一個特定的名稱。我知道我可以只寫原始的HTML,而只是想知道是否有在HTML輔助如何更新HTML幫助

的超越控制我想這

@Html.TextAreaFor(m => m.noteDetail.NotesDetails, new { @class = "k-textbox", @cols = 100, @rows = 5, id="NotesDetails", name= "NotesDetails" }) 

但是當我查看生成的HTML

<textarea class="k-textbox" cols="100" data-val="true" data-val-required="The details are required" id="NotesDetails" name="noteDetail.NotesDetails" rows="5"></textarea> 

感謝

+1

嘗試「@Name」(大寫N) – JleruOHeP

+0

@JleruOHeP好像所有會做的就是創建一個唯一的不同情況下第二個,非標準屬性。它*可能會工作,但我仍然認爲它已經損壞。 – tvanfosson

+0

@tvanfosson是的它是一種黑客。因爲XXXFor運算符(如TextAreaFor)的整點是爲模型綁定自動生成名稱。 – JleruOHeP

回答

0

你只需要在你的name屬性前面的@符號。

+0

「@」符號用於將保留的關鍵字變爲合法變量名稱。由於'name'不是保留關鍵字,所以在這裏沒有必要。 – tvanfosson

0

一種技術,當一個子模型是你的POST操作接受是把呈現在隨機配備的主視圖的局部視圖子模型的HTML模型,我發現。通過子模型的強類型輸入此部分,並將子模型的值傳遞給它。這樣,子模型上不會生成前綴。

@Html.Partial("_NoteDetails", Model.noteDetail) 

然後在_NoteDetails.cshtml

@model NoteDetail 

@Html.TextAreaFor(m => m.NoteDetails, 
        new { @class = "k-textbox", cols = 100, rows = 5 }); 
0

您好我想爲你傳遞一個viewModel,因爲它包含也許2款,這就是爲什麼你有這樣的名字。它的確如此,Binder從你的PostGet構建對象。 如果你改變了名字,那麼你可能會爲你的活頁夾執行一些自定義代碼,如果你想再次傳遞給控制器​​。