2010-02-24 16 views
3

在ASP.NET MVC中是否有创造独特“id”标签的开箱即用方式?ASP.NET MVC有办法生成唯一的ClientID吗?

(在的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> 

如果没有,很容易推出我自己的。

谢谢了,

乔恩

+0

他们不这样做,并且不应该有理由。根据我的经验,有很多理由不仅仅是一对夫妇元素。 在你的例子中,没有理由使用css类不会有效。 – Paul 2010-02-24 18:44:27

回答

1

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

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的可视数据对象,让您的ViewUserControl整洁

0

MSDN

的机会,新的GUID值将全部为零或等于 ,对其他任何Guid都很低。

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

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