老实说,我已经找了很长一段时间,我甚至找不到我正在寻找的通用格式,但是我有以下Razor语法,我对它的含义一无所知。< / p>
<option value="@value" @(Model.Amount == value ? "selected" : "") >$@value</option>
如果可能的话,我想解释一下这行代码。具体来说,为什么我没有 option value =“@ Model.Amount”或类似的东西? 我也不明白Razor语法如何在Model.Amount == value
之后发生'?'是什么?表明 以及“选择”这两个值:“”)
如果有人能够彻底向我解释这一点,我会非常感激。
由于
答案 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中的选定值。