gpt4 book ai didi

c# - MVC 4 @Html.DropDownListFor() 没有将模型值传递给下拉列表

转载 作者:行者123 更新时间:2023-11-30 16:18:06 24 4
gpt4 key购买 nike

我是 MVC 的新手,正在尝试测试应用程序来尝试一下。这个应用程序的一部分是生成一个带有下拉框的表单。我用

@Html.DropDownListFor() 来生成这个,并且在创建表单上下拉列表工作正常。但是当我进入编辑表单时,模型值没有传递到下拉菜单。

选择列表项

 public static string[] OnOffList()
{
var ret = new string[] { "On", "Off" };
return ret;
}

表单代码

@Html.DropDownListFor(model => model.ServiceCondition, new SelectList(OnOffDropDownHelper.OnOffList()))

对于此实例,假设 model.ServiceCondition = "Off"。

出于某种原因,每当我调用此表单时,下拉值始终为“On”,它似乎完全忽略了模型值。

这个我也试过

@Html.DropDownListFor(model => model.ServiceCondition, new SelectList(OnOffDropDownHelper.OnOffList(), "Off"))

强制设置“关闭”值,但它仍然显示为“打开”作为下拉列表中的选定值。

我想重申一下,我确实知道模型值为“Off”,并且我使用相同的 @Html.DropDownListFor() 创建了一个相同的“Create”表单,它能够将值传递给模型就好了。

就像我说的,我是 MVC 的新手,所以非常感谢任何帮助。

谢谢。

最佳答案

我认为您必须设置 IsSelected 属性。这对我总是有效:

首先,只需在您的模型中放置一个属性来整理 View 代码:

public List<SelectListItem> OnOffDDL
{
get
{
return OnOffDropDownHelper.OnOffList()
.Select(s => new SelectListItem
{
Text = s,
Value = s,
Selected = ServiceCondition == s
})
.ToList();
}
}

然后做:

@Html.DropDownListFor(model => model.ServiceCondition, model.OnOffDDL)

关于c# - MVC 4 @Html.DropDownListFor() 没有将模型值传递给下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16441512/

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