Asp.net 将DB值绑定到下拉列表(使用编辑器模板)问题

Asp.net 将DB值绑定到下拉列表(使用编辑器模板)问题,asp.net,asp.net-mvc,asp.net-mvc-3,drop-down-menu,mvc-editor-templates,Asp.net,Asp.net Mvc,Asp.net Mvc 3,Drop Down Menu,Mvc Editor Templates,我创建了用于创建、编辑和删除的视图。我正在使用编辑器模板在视图中显示一个下拉列表,其中包含模板中的选项 在我的视图上(创建和编辑): 在“创建视图-名称”下拉列表中正确渲染,我可以选择一个值并保存到DB。当我返回列表视图并单击编辑时,编辑视图不会显示数据库中的名称值。(DB在表中有名称值)。模板中似乎缺少模型类型(字符串): <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl"%> 将此更改为:

我创建了用于创建、编辑和删除的视图。我正在使用编辑器模板在视图中显示一个下拉列表,其中包含模板中的选项

在我的视图上(创建和编辑):


在“创建视图-名称”下拉列表中正确渲染,我可以选择一个值并保存到DB。当我返回列表视图并单击编辑时,编辑视图不会显示数据库中的名称值。(DB在表中有名称值)。

模板中似乎缺少模型类型(字符串):

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl"%>

将此更改为:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<string>"%>


我刚刚运行了一个本地测试,效果很好。

您的模板中似乎缺少模型类型(字符串):

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl"%>

将此更改为:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<string>"%>


我刚刚运行了一个本地测试,效果很好。

您是否尝试过删除
Selected=true
?它只是没有绑定到模型中的字段。我去掉了空选项,它显示了我想要编辑的任何行的第一个选项。这与我在下拉列表中使用的编辑器模板有关。所有其他不需要在视图中下拉的字段都没有这个问题。如果我将Html.EditorFor更改为Html.DisplayFor,它可以正常工作。它从数据库中获取字段的值,并将其填充到编辑视图中。。但是EditorFor试图呈现编辑器模板中的下拉列表,它以某种方式破坏了绑定。是否尝试删除
Selected=true
?它只是没有绑定到模型中的字段。我去掉了空选项,它显示了我想要编辑的任何行的第一个选项。这与我在下拉列表中使用的编辑器模板有关。所有其他不需要在视图中下拉的字段都没有这个问题。如果我将Html.EditorFor更改为Html.DisplayFor,它可以正常工作。它从数据库中获取字段的值,并将其填充到编辑视图中。。但是EditorFor试图呈现编辑器模板中的下拉列表,它不知怎么搞砸了绑定。
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<string>"%>