Nous donnons une démo dans quelques jours et je dois y aller et maquiller beaucoup de nos points de vue. Cela inclut de faire beaucoup de fausses données, etc. Je me suis dit que je laisserais tomber une boucle et une méthode d'extension qui retourne des nombres aléatoires, donc je n'ai pas besoin de créer moi-même ces données codées en dur.Pourquoi la méthode d'extension html du nombre aléatoire retourne-t-elle les mêmes valeurs?
Voici mon code de vue:
<% for(int i = 1; i < 7; i++) { %>
<tr>
<td class="auditsTableAgencyElement">Agency <%=i %></td>
<td class="auditsTableResults"><%= Html.GetRandomNumber(0, 30) %></td>
<td class="auditsTableResults"><%= Html.GetRandomNumber(0, 100) %>%</td>
<td class="auditsTableResults"><%= Html.GetRandomNumber(0, 20) %></td>
<% foreach (var record in Model.Categories) { %>
<td class="auditsTableResults"><%= Html.GetRandomNumber(0, 30) %></td>
<td class="auditsTableResults"><%= Html.GetRandomNumber(0, 100) %>%</td>
<td class="auditsTableResults"><%= Html.GetRandomNumber(0, 20) %></td>
<% } %>
</tr>
<% } %>
Voici ce que mon point de vue ressemble après avoir fait ceci:
numéros identiques sur toute la ligne. Mes demandes de numéros aléatoires sont-elles mises en cache et me sont-elles retournées? Si oui, comment désactiver cette fonctionnalité pour cette méthode uniquement?
public static string GetRandomNumber(this HtmlHelper html, int low, int high)
{
Random myRand = new Random();
return myRand.Next(low, high).ToString();
}
Ne pas avoir besoin "ce HtmlHelper html", pour ce soit une méthode d'extension? – KingNestor
En outre, vous mentionnez avoir une seule instance statique n'est pas thread-safe. Pouvez-vous expliquer cela pour moi? Que pourrait-il arriver avec un tas de threads appelant potentiellement next() sur cette même instance? – KingNestor
@KingNestor vous en avez besoin pour que ce soit une méthode d'extension, mais vous n'avez pas besoin de cela pour appeler une fonction statique publique. –