为什么我的 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_PAYSfalse,下拉列表仍然显示 Yes

您应该在 Razor 标记中创建 SelectList,以便可以在那里设置 selected 值。

现在的情况是,Html 助手不会 select 任何东西,而是将第一个选项呈现为 select 之前的版本。