Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 指定名称时,Html.DropDownList选定值不起作用_Asp.net Mvc_Razor_Asp.net Mvc 4 - Fatal编程技术网

Asp.net mvc 指定名称时,Html.DropDownList选定值不起作用

Asp.net mvc 指定名称时,Html.DropDownList选定值不起作用,asp.net-mvc,razor,asp.net-mvc-4,Asp.net Mvc,Razor,Asp.net Mvc 4,我试图在呈现页面时从下拉列表中选择特定选项 我的控制器上有以下代码: ViewBag.PropertyId=new SelectList(db.Properties,“PropertyId”,“PropertyName”,id.ToString()) 在我看来,这是行不通的。所选选项始终是第一个选项。 @Html.DropDownList(“PropertyId”,(SelectList)ViewBag.PropertyId) 如果选择了正确的选项,则此操作在我的视图上不起作用。但是,我无法保存

我试图在呈现页面时从下拉列表中选择特定选项

我的控制器上有以下代码:
ViewBag.PropertyId=new SelectList(db.Properties,“PropertyId”,“PropertyName”,id.ToString())

在我看来,这是行不通的。所选选项始终是第一个选项。
@Html.DropDownList(“PropertyId”,(SelectList)ViewBag.PropertyId)

如果选择了正确的选项,则此操作在我的视图上不起作用。但是,我无法保存此内容,因为我需要选择列表的名称为PropertyId,以便正确发布。
@Html.DropDownList(“sadgfsadsaf”,(SelectList)ViewBag.PropertyId)

有人能帮我理解我应该在这里做什么吗?我知道我应该使用viewmodel而不是Viewbag,但我只想先让它工作


谢谢

我以前也遇到过同样的问题,这是一次名称冲突。尝试更改下拉列表和/或值名称,看看会发生什么。

当您再次发回同一控制器和视图,但要更改控制器中的状态时,也可能会发生名称冲突

它将在ModelState对象中保留发布的模型状态,并在渲染视图中恢复发布的状态。要更改控制器中的模型状态,必须执行
ModelState。删除(“PropertyId”)
或立即设置:

ModelState["PropertyId"].Value = new System.Web.Mvc.ValueProviderResult(id.ToString(), id.ToString(), System.Globalization.CultureInfo.CurrentCulture);

啊,谢谢你!ViewBag.PropertyId导致与名为PropertyId的选择列表发生冲突。混乱,因为它是默认的脚手架。非常感谢,我也去过。很好的第一篇文章。如果您给出代码示例,效果会更好。