我这样做:
<%=Html.HiddenFor(o => o[i].HobbyId) %>
它创建了一个隐藏的输入,但没有id
(仅name
,我需要id
)。
我可以创建一个id
吗?
atm我是这样做的:
<%=Html.HiddenFor(o => o[i].HobbyId, new Dictionary<string, object>{{"id", " _ "+i+"__HobbyId"}}) %>
答案 0 :(得分:13)
更清洁的方法是
<%=Html.HiddenFor(o => o[i].HobbyId, new {id = " _ "+i+"__HobbyId"}) %>
但除此之外你现有的方法还可以。如果你真的想要一个简单的语法,你可以创建一个调用HiddenFor的扩展方法,但这似乎不值得。
答案 1 :(得分: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和name约定是一致的,并产生不会改变的稳定id和name值。这对我很有用。
所以要将您的示例转换为我的格式:
@Html.Hidden(
string.Format(" _ {0}__{1}", i, HobbyId),
HobbyId,
)
......那应该能得到你想要的东西。希望在输入时我没有注入任何语法错误。 :)