Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.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 3 枚举的数据类型应该是什么<;选择列表项>;_Asp.net Mvc 3_Razor_Model Binding - Fatal编程技术网

Asp.net mvc 3 枚举的数据类型应该是什么<;选择列表项>;

Asp.net mvc 3 枚举的数据类型应该是什么<;选择列表项>;,asp.net-mvc-3,razor,model-binding,Asp.net Mvc 3,Razor,Model Binding,我使用的是mvc 3 razor,问题是使用razor助手在数据库中记录dropdownlist值: @Html.DropDownListFor(m => m.Question, (IEnumerable<SelectListItem>)ViewBag.QuestionList) @Html.DropDownListFor(m=>m.Question,(IEnumerable)ViewBag.QuestionList) 这里,我的视图使用模型绑定。在数据库中,问题列是

我使用的是mvc 3 razor,问题是使用razor助手在数据库中记录dropdownlist值:

 @Html.DropDownListFor(m => m.Question,   (IEnumerable<SelectListItem>)ViewBag.QuestionList)
@Html.DropDownListFor(m=>m.Question,(IEnumerable)ViewBag.QuestionList)
这里,我的视图使用模型绑定。在数据库中,问题列是sting数据类型(varchar),在运行应用程序时,在提交表单后显示以下错误

The ViewData item that has the key 'Question' is of type 'System.String' but must be of type 'IEnumerable<SelectListItem>'.
具有键'Question'的ViewData项的类型为'System.String',但必须为'IEnumerable'类型。
我应该在这里更改什么以避免错误我必须使用模型绑定

我应该在这里更改什么以避免错误我必须使用模型绑定

您应该确保在呈现此视图的控制器操作中,您已使用
IEnumerable
填充了
ViewBag.QuestionList
属性。当重新显示包含此下拉列表的同一视图时,人们通常会忘记在POST操作中执行此操作:

IEnumerable<SelectListItem> items = ... 
ViewBag.QuestionList = items;
return View(someModel);
IEnumerable items=。。。
ViewBag.QuestionList=项目;
返回视图(someModel);
还要确保模型上的Question属性是标量类型(字符串、整数等),而不是复杂类型。如果是复杂类型,则需要选择相应的标量属性以将选定值绑定到:

@Html.DropDownListFor(
    m => m.Question.QuestionId, 
    (IEnumerable<SelectListItem>)ViewBag.QuestionList
)
@Html.DropDownListFor(
m=>m.Question.QuestionId,
(IEnumerable)ViewBag.QuestionList
)

您完全正确,我忘记在HTTPOST操作中传递viewbag项。谢谢