在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一样。
答案 0 :(得分:4)
同时@Html.IdFor(x=>x.YourProperty)
进入了MVC,我认为这是现在的简单解决方案
答案 1 :(得分:1)
这有用吗?
@HtmlHelper.GenerateIdFromName("originalName")
如果是这样,您可以轻松制作自己的HtmlHelper
扩展名,其中包含lambda表达式。