有人可以在Razor中向我解释这种语法吗?

时间:2013-07-16 14:24:45

标签: asp.net-mvc razor razor-2

老实说,我已经找了很长一段时间,我甚至找不到我正在寻找的通用格式,但是我有以下Razor语法,我对它的含义一无所知。< / p>

<option value="@value" @(Model.Amount == value ? "selected" : "") >$@value</option>  

如果可能的话,我想解释一下这行代码。具体来说,为什么我没有 option value =“@ Model.Amount”或类似的东西? 我也不明白Razor语法如何在Model.Amount == value

之后发生

'?'是什么?表明 以及“选择”这两个值:“”)

如果有人能够彻底向我解释这一点,我会非常感激。

由于

2 个答案:

答案 0 :(得分:2)

(condition) ? (if true) : (else)是C#conditional operator,不只是Razor。

如果<option value="xxx" ... "selected">等于@value,则会写出Model.Amount,即在HTML中选择它。

这是

的简写
if (Model.Amount == value)
{
   <%: "Selected" %>
}
else
{
  <%: "" %>
}

答案 1 :(得分:1)

value="@value"

这是设置选项

的值
@(Model.Amount == value ? "selected" : "")

这是简写布尔逻辑,或IF / THEN

以上概念上与此相同:

if (Model.Amount == value)
{
    return "selected";
}
else
{
    return "";
}

View的模型上有一个名为Amount的属性,这是一个布尔值,用于确定该选项是否为select中的选定值。