ASP.NET MVC是否有办法生成唯一的ClientID?

时间:2010-02-24 16:30:35

标签: asp.net-mvc

是否有开箱即用的方法在ASP.NET MVC中创建唯一的“id”标记?

(类似于WebForms中可怕但有时有用的ClientID?)

当在页面上多次渲染局部视图时,这将非常有用。

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<%-- Example Partial View --%>
<div id="<%=GenerateAUniqueIDHere()%>">
Content
</div>
<script type="text/javascript">
    $("#<%=GenerateAUniqueIDHere%>").hide().fadein().css("font-size", "500%");
</script>

如果没有,那就很容易卷起我自己的。

非常感谢,

乔恩

3 个答案:

答案 0 :(得分:5)

使用GUID?

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %> 
<%-- Example Partial View --%> 
<%
    string ID = Guid.NewGuid().ToString();
%>
<div id="<%=ID%>"> 
    Content 
</div> 
<script type="text/javascript"> 
    $("#<%=ID%>").hide().fadein().css("font-size", "500%"); 
</script>

我还会在renderpartial方法调用期间将GUID作为viewdata对象传递,以保持ViewUserControl整洁

答案 1 :(得分:1)

据我所知,MVC没有这个。我使用ASP.NET MVC超过一年,从来没有使用过它。当我有几个具有相同名称的控件时,我几乎总是希望以后能够查询这些控件,所以我需要知道Id,并使用计数器,所以我知道这些名称。如果你不需要知道他们的ID,为什么甚至给他们一个id?

答案 2 :(得分:0)

来自MSDN

  

新Guid的值全部为零或相等的可能性   任何其他Guid都非常低。

所以似乎没有办法确保ID绝对是唯一的。使用Guid似乎比自己生成随机数更好。

您可以尝试从数据或其描述中生成ID。