Czy istnieje gotowy sposób tworzenia unikalnych tagów „id” w ASP.NET MVC?
(Podobne do budzących grozę, ale czasem przydatnych identyfikatorów klienta w formularzach internetowych?)
Przydałoby się to podczas renderowania widoku częściowego wiele razy na stronie.
<%@ 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>
Jeśli nie, łatwo jest rzucić własne.
Dzięki wielkie,
Jon
Odpowiedzi:
5 dla odpowiedzi № 1Używać 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>
Przekazałbym również GUID jako obiekt viewdata podczas wywołania metody renderpartial, aby utrzymać porządek w ViewUserControl
1 dla odpowiedzi nr 2
O ile mi wiadomo, MVC tego nie ma. Korzystam z ASP.NET MVC od ponad roku i nigdy nie musiałem tego używać. Kiedy mam kilka kontrolek o tej samej nazwie, prawie zawsze chcę mieć możliwość późniejszego sprawdzenia tych kontrolek, więc muszę znać identyfikator i użyć licznika, więc znam nazwy. Jeśli nie musisz znać ich identyfikatorów, dlaczego nawet dajesz im identyfikator?
0 dla odpowiedzi № 3
Od MSDN:
Szansa, że wartość nowego Guida będzie równa zeru do każdego innego Guid jest bardzo niski.
Wydaje się więc, że nie ma sposobu, aby upewnić się, że identyfikator jest absolutnie unikalny. Korzystanie z Guid wydaje się lepszym rozwiązaniem niż samodzielne generowanie losowej liczby.
Możesz spróbować wygenerować identyfikator na podstawie danych lub ich opisu.