Asp.net 对象引用未设置为对象的实例
在我的应用程序中,我有以下消息: 对象引用未设置为对象的实例Asp.net 对象引用未设置为对象的实例,asp.net,asp.net-mvc,asp.net-mvc-3,drop-down-menu,selectlist,Asp.net,Asp.net Mvc,Asp.net Mvc 3,Drop Down Menu,Selectlist,在我的应用程序中,我有以下消息: 对象引用未设置为对象的实例 @Html.DropDownList("Title",ViewData["PersonTitle"] as SelectList, Model.Person.Title) dropdownlist包含简单的字符串(人员标题)。选择标题时,该标题应返回到我的模型。控制器代码: ViewData["PersonTitle"] = new SelectList(new[] { "Dhr.", "Mevr." }); 为什么这不起作用 编
@Html.DropDownList("Title",ViewData["PersonTitle"] as SelectList, Model.Person.Title)
dropdownlist包含简单的字符串(人员标题)。选择标题时,该标题应返回到我的模型。控制器代码:
ViewData["PersonTitle"] = new SelectList(new[] { "Dhr.", "Mevr." });
为什么这不起作用
编辑:目的是改变
@Html.EditorFor(model => model.Person.Title)
像这样的事情
@Html.DropDownList("Title",ViewData["PersonTitle"] as SelectList, Model.Person.Title)
Model.Person
为空。你需要找出为什么这是没有得到填充。最常见的原因是没有输出到表单,因此它不会被发回。Model.Person
为空。你需要找出为什么这是没有得到填充。最常见的原因是没有输出到表单,因此它不会被发回。我必须使用@html.dropdownlistfor我必须使用@html.dropdownlistfor好,但我需要用dropdownlist替换这个部分“@html.EditorFor(model=>model.Person.Type)”。该下拉列表的值应该发送到与编辑器相同的位置。(Model.Person.Type)而不是“Title”
它需要是“Person.Title”
下拉列表后的“Title”?这只是dropdownlist的名称。为了避免误解,它是model.person.title而不是model.person.Type(无法再更改我的评论)。如果我使用editorfor(model=>model.Person.Type),它会将我写的内容的值发送到模型。找到它:had to use@html.dropdownlistforYes,使用通用扩展是100倍更好:)我没有向您推荐它,因为您使用的是ViewData,但现在很好,您已经更改了它。好的,但我需要替换此部分“@html.editorfor”(model=>model.Person.Type)”的下拉列表。该下拉列表的值应发送到编辑器将执行的相同位置。(model.Person.Type)而不是“Title”
它需要是“Person.Title”
标题在dropdownlist之后?这只是dropdownlist的名称。为了避免误解,它是model.person.title而不是model.person.Type(无法再更改我的注释)。如果我使用editorfor(model=>model.person.Type),它将我所写内容的值发送到模型找到它:不得不使用@html.dropdownlistforYes,使用泛型扩展是它的100倍:)我没有向您推荐它,因为您使用的是ViewData,但现在很好,您已经更改了它。可能重复的可能重复的