/ / Má ASP.NET MVC spôsob, ako vygenerovať jedinečné identifikátory ClientID? - asp.net-mvc

Má ASP.NET MVC spôsob, ako generovať jedinečné identifikátory ClientID? - asp.net-mvc

Existuje v ASP.NET MVC existujúci spôsob vytvorenia jedinečných „id“ značiek?

(Podobá sa obávaným, ale niekedy užitočným identifikátorom ClientID vo WebForms?)

Toto by bolo užitočné pri mnohonásobnom vykreslení čiastočného zobrazenia na stránke.

<%@ 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>

Ak nie, je to dosť ľahké na to, aby som sa húpal sám.

Ďakujem pekne,

jon

odpovede:

5 pre odpoveď č. 1

Použiť 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>

GUID by som tiež odovzdal ako objekt viewdata počas volania metódy renderpartial, aby bola vaša ViewUserControl uprataná


1 pre odpoveď č. 2

Pokiaľ viem, MVC to nemá. Používal som ASP.NET MVC viac ako rok a nikdy som ho nemal používať. Keď mám niekoľko ovládacích prvkov s rovnakým názvom, takmer vždy chcem mať možnosť tieto ovládacie prvky dotazovať neskôr, takže musím poznať ID a použiť počítadlo, takže poznám mená. Ak nepotrebujete poznať svoje ID, prečo im dokonca dáte ID?


0 pre odpoveď č. 3

z MSDN:

Šanca, že hodnota nového GUID bude nulová alebo rovnaká akejkoľvek inej GUID je veľmi nízka.

Zdá sa teda, že neexistuje spôsob, ako zabezpečiť, aby bolo ID úplne jedinečné. Používanie GUID sa zdá byť lepším riešením, ako vygenerovanie náhodného čísla sami.

Môžete skúsiť vygenerovať ID z údajov alebo ich popisu.