2011-01-05 74 views

回答

12

一個更清潔的方式來做到這一點是

<%=Html.HiddenFor(o => o[i].HobbyId, new {id = " _ "+i+"__HobbyId"}) %> 

但除了現有的方法是確定的。如果你真的想要一個簡單的語法,你可以創建一個調用HiddenFor的擴展方法,但這似乎不值得。

1

我傾向於做一些事情,如:

@Html.Hidden(
    string.Format("{0}ObjectId", Model.BindingPrefix), 
    Model.ObjectId 
) 

將會產生這樣的:

<input id="customerModel_ObjectId" name="customerModel.ObjectId" type="hidden" value="3a44d3eb-58ec-4229-9fe0-e420d9855bb7"> 

ID和名稱約定是一致的,併產生穩定的id和name的值不會改變。這對我來說非常合適。

所以你的例子轉換成我的格式:

@Html.Hidden(
    string.Format(" _ {0}__{1}", i, HobbyId), 
    HobbyId, 
) 

...應該得到你想要的,以及什麼。希望我在輸入時不會注入任何語法錯誤。 :)

+0

......當然這是使用MVC3 RC2中的Razor語法,但您可以輕鬆將其轉換爲aspx語法。 – slimflem 2011-01-06 04:09:23

相關問題