Привязка значения БД для раскрывающегося списка (с использованием шаблона редактора) - PullRequest
2 голосов
/ 20 марта 2012

У меня есть виды, созданные для создания, редактирования, удаления.Я использую шаблон редактора для отображения выпадающего списка с вариантами из шаблона.

В моих представлениях (создание и редактирование):

  <%: 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; }

В представлении создания - отображение выпадающего имениправильно, и я могу выбрать значение и сохранить в БД.Когда я возвращаюсь к своему списку и нажимаю «Изменить», в редакторе не отображается значение «Имя» из базы данных.(БД имеет значение имени в таблице).

1 Ответ

0 голосов
/ 21 марта 2012

Похоже, что в вашем шаблоне отсутствует тип модели (строка):

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

Измените это на:

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

Я только что провел локальный тест, и он отлично работает.

...