为什么我的 Yes/No 下拉列表总是显示是?
Why does my Yes/No dropdown always show Yes?
我有一个 Yes/No 下拉列表声明如下:
@Html.DropDownListFor(model => Model.Items[i].ITEM_PAYS, Model.YesNoSelectList, new { @class = "allow-edit" })
其中Model.YesNoSelectList
在我的BoqReviewViewModel
中设置如下 class:
public BoqReviewViewModel()
{
YesNoSelectList = new SelectList(new[]
{
new {Text = "Yes", Value = true},
new {Text = "No", Value = false},
},
"Value", "Text");
}
public SelectList YesNoSelectList { get; set; }
这导致元素呈现如下:
<select class="allow-edit" id="Items_0__ITEM_PAYS" name="Items[0].ITEM_PAYS">
<option value="True">Yes</option>
<option value="False">No</option>
</select>
然而,即使 select
的模型 属性,即 Model.Items[i].ITEM_PAYS
是 false
,下拉列表仍然显示 Yes
。
您应该在 Razor 标记中创建 SelectList
,以便可以在那里设置 selected 值。
现在的情况是,Html 助手不会 select 任何东西,而是将第一个选项呈现为 select 之前的版本。
我有一个 Yes/No 下拉列表声明如下:
@Html.DropDownListFor(model => Model.Items[i].ITEM_PAYS, Model.YesNoSelectList, new { @class = "allow-edit" })
其中Model.YesNoSelectList
在我的BoqReviewViewModel
中设置如下 class:
public BoqReviewViewModel()
{
YesNoSelectList = new SelectList(new[]
{
new {Text = "Yes", Value = true},
new {Text = "No", Value = false},
},
"Value", "Text");
}
public SelectList YesNoSelectList { get; set; }
这导致元素呈现如下:
<select class="allow-edit" id="Items_0__ITEM_PAYS" name="Items[0].ITEM_PAYS">
<option value="True">Yes</option>
<option value="False">No</option>
</select>
然而,即使 select
的模型 属性,即 Model.Items[i].ITEM_PAYS
是 false
,下拉列表仍然显示 Yes
。
您应该在 Razor 标记中创建 SelectList
,以便可以在那里设置 selected 值。
现在的情况是,Html 助手不会 select 任何东西,而是将第一个选项呈现为 select 之前的版本。