Как объявить локальную переменную в Razor?
Я разрабатываю веб-приложение в asp.net mvc 3.
Я новичок в этом. В представлении с использованием бритвы я хотел бы объявить некоторые локальные переменные и использовать их на всей странице. Как это можно сделать?
Кажется довольно тривиальным, чтобы иметь возможность выполнить следующее действие:
@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>
}
Но это не работает. Возможно ли это?
Ответы
Ответ 1
Я думаю, что вы были довольно близки, попробуйте это:
@{bool isUserConnected = string.IsNullOrEmpty(Model.CreatorFullName);}
@if (isUserConnected)
{ // meaning that the viewing user has not been saved so continue
<div>
<div> click to join us </div>
<a id="login" href="javascript:void(0);" style="display: inline; ">join here</a>
</div>
}
Ответ 2
Я думаю, что переменная должна находиться в одном блоке:
@{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>
}
}
Ответ 3
Вы также можете использовать:
@if(string.IsNullOrEmpty(Model.CreatorFullName))
{
...your code...
}
Нет необходимости в переменной в коде
Ответ 4
Если вы ищете переменную int, которая увеличивается в виде циклов кода, вы можете использовать что-то вроде этого:
@{
int counter = 1;
foreach (var item in Model.Stuff) {
... some code ...
counter = counter + 1;
}
}
Ответ 5
Не прямой ответ на проблему с ОП, но это тоже может вам помочь. Вы можете объявить локальную переменную рядом с некоторым html внутри области без проблем.
@foreach (var item in Model.Stuff)
{
var file = item.MoreStuff.FirstOrDefault();
<li><a href="@item.Source">@file.Name</a></li>
}
Ответ 6
чтобы объявить var, который будет доступен по всей странице. Верх страницы обычно работает. подразумеваемый или явно ваш выбор.
@{
//implicit
var something1 = "something";
//explicit
string something2 = "something";
}
@something1 //to display on the page
@something2 //to display on the page