我怎么知道Razor Html帮助器生成的id是什么?

时间:2012-06-13 19:01:53

标签: razor html-helper id-generation

在Razor视图中,假设我有类似这样的内容:

@Html.HiddenFor(model => model.Värde)

在这里,“Värde”是瑞典人的“价值”。请注意它包含“ä”。为此,Razor将生成如下HTML:

<input id="V_rde" name="Värde" type="hidden" />

请注意,元素的ID是“V_rde”,而不是“Värde”。

那么,如何使用getElementById从JavaScript访问此元素? 我知道我可以使用'V_rde',但我想要一些通用的东西,而不仅仅是“Värde”,类似这样的东西(意思是htmlAttributes参数):

@Html.Whatever(..., new { onclick = "JavaScript:alert(document.getElementById('@Html.IdFor("Värde")'));" })

我希望@ Html.IdFor(字符串名称)转换名称,就像在标签,复选框,编辑框等的@Html助手中转换id一样。

2 个答案:

答案 0 :(得分:4)

同时@Html.IdFor(x=>x.YourProperty)进入了MVC,我认为这是现在的简单解决方案

答案 1 :(得分:1)

这有用吗?

@HtmlHelper.GenerateIdFromName("originalName")

如果是这样,您可以轻松制作自己的HtmlHelper扩展名,其中包含lambda表达式。