0

老实说,我已经找了很长时间,我什至找不到我正在寻找的通用格式,但是我有以下 Razor 语法,我不知道它的含义。

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

如果可能的话,我想要对那行代码的解释。具体来说,为什么我没有选项值 ="@Model.Amount" 或类似的东西?我也不明白 Razor 语法在 Model.Amount == value 之后是如何工作的

'?' 是什么意思?指示 以及两个值 "selected" : "")

如果有人能彻底地向我解释这一点,我将不胜感激。

谢谢

4

2 回答 2

2

(condition) ? (if true) : (else)是 C#条件运算符,不仅适用于 Razor。

它写出<option value="xxx" ... "selected">if @valueis equal to Model.Amount,即在 HTML 中选择它。

它相当于简写

if (Model.Amount == value)
{
   <%: "Selected" %>
}
else
{
  <%: "" %>
}
于 2013-07-16T14:35:43.670 回答
1
value="@value"

这是设置选项的值

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

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

上面在概念上和这个是一样的:

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

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

于 2013-07-16T14:36:57.693 回答