我试图让以下三元条件在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)并返回一个数字。这可能吗?
答案 0 :(得分:4)
在值之前删除@符号:
<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)”行写为文本,您需要使用@:
前缀明确说明。