gpt4 book ai didi

c# - 使用默认值从 SelectList 创建 DropDownListFor

转载 作者:太空狗 更新时间:2023-10-29 19:52:27 24 4
gpt4 key购买 nike

我有一个 dropdownlistfor :

 @Html.DropDownListFor(model => model.Item.Item.Status, new SelectList(@Model.AllStatus, "id", "Description"), new { id = "statusDropdown" })
@Html.ValidationMessageFor(model => model.Item.Item.Status)

HTML 输出:

<select id="statusDropdown" class="valid" name="Item.Item.Status" data-val-required="The Status field is required." data-val-number="The field Status must be a number." data-val="true">
<option value="2">Completed by Admin</option>
<option value="3">General Error</option>
<option value="4">New</option>
</select>

如何更新此代码以设置默认选择的选项?例如

<option value="4" selected>New</option>

我试过了:

 @Html.DropDownListFor(model => model.Item.Item.Status, new SelectList(@Model.AllStatus, "id", "Description",@Model.SelectedStatusIndex), new { id = "statusDropdown" })

@Model.SelectedStatusIndex值为 4,但不会将默认选项更改为新建。

我也试过:

@Html.DropDownListFor(model => model.SelectedStatusIndex, new SelectList(@Model.AllStatus, "id", "Description"), new { id = "statusDropdown" })
@Html.ValidationMessageFor(model => model.Item.Item.Status)

这会选择默认选项“新建”,但是 model.Item.Item.Status不是由 HTTP POST 上的下拉菜单设置的。

其他细节:

model.Item.Item.Status是一个整数。 @Model.AllStatus是一个列出所有可用状态选项的 SQL 表。

最佳答案

已经有一些关于那个的讨论 here there 。其中一个问题可能是使用与 string 不同的类型为键值。我过去遇到过类似的问题,我知道我像 this 一样解决了它- 明确设置 Selected准备列表时的属性(在您的情况下为 AlLStatus )。

对于您的情况(在 Controller 操作中)意味着:

IEnumerable<SelectListItem> selectList = 
from s in allStatus // where ever you get this from, database etc.
select new SelectListItem
{
Selected = (s.id == model.Item.Item.Status),
Text = cs.Description,
Value = s.id.ToString()
};
model.AllStatus = selectList;

关于c# - 使用默认值从 SelectList 创建 DropDownListFor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17215558/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com