Использование тернарного условия в Asp.Net MVC Razor - PullRequest
1 голос
/ 04 января 2012

Я пытаюсь заставить работать следующее троичное условное выражение в Asp.Net MVC 3 Razor:

<a href="@Url.Action("TestBrowse", new { page = @(Model.IsLastPage ? Model.PageNumber : Model.PageNumber + 1) })">Next</a>

Все примеры использования троичного условного выражения в Razor, которые я нашел, имеют возвращаемые значениястроки.Но здесь я хотел бы использовать выражение (Model.PageNumber + 1) и вернуть число.Возможно ли это?

1 Ответ

4 голосов
/ 04 января 2012

Опустите знак @ перед значением:

<a href="@Url.Action("TestBrowse", new { page = Model.IsLastPage ? Model.PageNumber : (Model.PageNumber + 1) })">Next</a>

Позвольте мне просто добавить, что в общем случае Razor не нужен / не нужен префикс @, если только он не является абсолютно необходимым, например:

<div>
@foreach(var value in Model.Values)
{
if(value.Flag)
{
<div>@value.Text</div>
}
}
<div>

Обратите внимание, что вам не нужен второй знак @, пока вы не окажетесь внутри тега, где Razor не будет знать, хотите ли вы отобразить текст "value.Text" или выполнить егокак кодПредполагается, что оператор if является кодом.Чтобы избежать этого и написать строку «if (value.Flag)» в виде текста, вам нужно явно сказать это с префиксом @:.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...