我需要为ASP.NET MVC应用程序生成HTML元素的唯一标识符。
在经典的ASP.NET中,我可以使用
<a id=<%=ClientID>%>
在ASP.NET MVC世界中是否有类似的解决方案?
更新:
例如,我想创建一个可重用的Button元素。我希望代码看起来类似于
<div class="myButton" id="<%=ClientID%>">
<script>
var button = document.getElementById(<%=ClientID%>);
button.onclick = ....
</script>
如果ClientId不可用,那么最好的方法是什么?
目前,我看到两个选项-像Guid.NewGuid()这样生成它或从外部传递id?还有其他选项吗?
更新:
目前,我已经想到了以下解决方案。 public static string UniqueId(this HtmlHelper html)
{
var idGenerator = html.ViewContext.HttpContext.Items[typeof (UniqueIdGenerator)] as UniqueIdGenerator;
if (idGenerator==null)
html.ViewContext.HttpContext.Items[typeof (UniqueIdGenerator)] = idGenerator = new UniqueIdGenerator();
return idGenerator.Next();
}
...
private class UniqueIdGenerator
{
private int id;
public string Next()
{
id++;
return "_c" + id; // todo: optimize
}
}
<a id=<%=ClientID>%>
不能生成唯一的ID。 - SLaks