2

在 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(string name) 转换名称,就像在标签、复选框、编辑框等的 @Html 帮助器中转换的 id 一样。

4

2 回答 2

4

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

于 2013-12-17T10:05:35.337 回答
1

这行得通吗?

@HtmlHelper.GenerateIdFromName("originalName")

如果是这样,您可以轻松地制作自己的HtmlHelper扩展,该扩展采用 lambda 表达式。

于 2012-06-13T20:14:52.407 回答