Tworzę aplikację internetową w asp.net mvc 3. Jestem bardzo nowy. W widoku z użyciem brzytwy chciałbym zadeklarować niektóre zmienne lokalne i używać ich na całej stronie. Jak można to zrobić?
Wydaje się dość trywialne, aby móc wykonać następujące czynności:
@bool isUserConnected = string.IsNullOrEmpty(Model.CreatorFullName);
@if (isUserConnected)
{ // meaning that the viewing user has not been saved
<div>
<div> click to join us </div>
<a id="login" href="javascript:void(0);" style="display: inline; ">join</a>
</div>
}
Ale to nie działa. czy to możliwe?
c#
.net
asp.net-mvc
asp.net-mvc-3
razor
Vondip
źródło
źródło
@Code .. End Code
zamiast@{ .. }
@bool isUserConnected = string.IsNullOrEmpty(Model.CreatorFullName);
ale definicja zmiennej musi znajdować się w „bloku kodu”. Nie potrafię udzielić lepszej odpowiedzi na pytanie, dlaczego tak jest, tak po prostu działa brzytwa.{ }
tagów jest zwykle pierwszym krokiemMyślę, że zmienna powinna znajdować się w tym samym bloku:
źródło
isUserConnected
dalszej części strony?@if (isUserConnected) { /* stuff if connected */ }
lub<div>Connected? @isUserConnected</div>
(działa to lepiej z łańcuchami). Nie jest on jednak dostępny poza tym plikiem (np. Będziesz musiał zadeklarować go osobno w częściach).Możesz także użyć:
Nie ma potrzeby zmiennej w kodzie
źródło
Jeśli szukasz zmiennej int, która zwiększa się w miarę zapętlania się kodu, możesz użyć czegoś takiego:
źródło
Nie jest to bezpośrednia odpowiedź na problem OP, ale może ci również pomóc. Możesz bez problemu zadeklarować zmienną lokalną obok jakiegoś html w zakresie.
źródło
aby zadeklarować, że zmienna ma być dostępna na całej stronie. Na górze strony zwykle działa. Domniemany lub jawnie twój wybór.
źródło
możesz umieścić wszystko w bloku i łatwo napisać dowolny kod, który chcesz w tym bloku, dokładnie taki kod:
pomaga mieć na początku czystszy kod, a także można zapobiec ładowaniu strony wiele razy różnych bloków kodów
źródło