Как объявить локальную переменную в Razor? - PullRequest
326 голосов
/ 06 июля 2011

Я занимаюсь разработкой веб-приложения в 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>
}

Но это не работает. Это возможно?

Ответы [ 6 ]

481 голосов
/ 06 июля 2011

Я думаю, вы были довольно близко, попробуйте это

@{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>
}
47 голосов
/ 09 февраля 2012

Я думаю, что переменная должна быть в том же блоке:

@{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>
    }
    }
18 голосов
/ 25 августа 2013

Вы также можете использовать:

@if(string.IsNullOrEmpty(Model.CreatorFullName))
{
...your code...
}

Нет необходимости в переменной в коде

11 голосов
/ 12 июня 2015

Если вы ищете переменную типа int, которая увеличивается при циклическом коде, вы можете использовать что-то вроде этого:

7 голосов
/ 21 марта 2017

Не прямой ответ на проблему ОП, но это может помочь и вам. Вы можете объявить локальную переменную рядом с некоторым html внутри области видимости без проблем.

@foreach (var item in Model.Stuff)
{
    var file = item.MoreStuff.FirstOrDefault();

    <li><a href="@item.Source">@file.Name</a></li>
}
2 голосов
/ 22 ноября 2017

для объявления переменной, доступ к которой осуществляется на странице .... обычно получается верхняя часть страницы. неявный или явно ваш выбор.

          @{
               //implicit
               var something1 = "something";
               //explicit
               string something2 = "something";
          }


            @something1 //to display on the page
            @something2 //to display on the page
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...