2

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

根据我的观点(创建和编辑):

  <%: Html.EditorFor(model => model.Name) %> 
  //This is dropdown getting list from template.

问题:名称字段未显示在编辑视图上。

模板文件(NameDropDown.ascx)看起来像..

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

<%= Html.DropDownList(
    "", 
    new SelectList(
        new SelectListItem[] 
        { 
              new SelectListItem { Value = "", Text = "" , Selected = true},
            new SelectListItem { Value = "Mark", Text = "Mark" },
            new SelectListItem { Value = "Jim", Text = "Jim" },
              new SelectListItem { Value = "Jason", Text = "Jason" }                                 
        },

        "Value", 
        "Text",
        Model
    )
) %>

在模型课上我有..

 [UIHint("NameDropDown")]
 public string Name { get; set; }

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

4

1 回答 1

0

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

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

将其更改为:

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

我刚刚进行了本地测试,它工作正常。

于 2012-03-20T21:06:27.900 回答