2012-06-13 22 views
2

在Razor视图,假设我有这样的事情:如何知道Razor Html助手生成的id?

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

这里,“瓦德”,是瑞典的“价值”。注意它包含“ä”。对于这一点,剃刀将生成HTML这样的:

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

需要注意的是元素的ID是“V_rde”,而不是“瓦德”。

那么,如何使用getElementById从JavaScript访问此元素? 我明白,我可以用“V_rde”,但我想要的东西,将一般工作,不只是“瓦德”,这样的事情(指htmlAttributes参数):

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

在哪里,我想@Html。 IdFor(字符串名称)将名称完全转换为id在标签,复选框,编辑框等的@Html助手中转换。

回答

4

同时@Html.IdFor(x=>x.YourProperty)使它成为MVC,我想这是最简单的解决方案现在

1

这是行不通?

@HtmlHelper.GenerateIdFromName("originalName") 

如果是这样,你可以很容易地使自己的HtmlHelper扩展它需要一个lambda表达式。

+0

是的,它工作正常。谢谢!也管理写助手。 –

相关问题