Проблема Привязка выбранного значения для DropDownlist для внутри шаблона редактора

StackOverflow https://stackoverflow.com/questions/3979191

Вопрос

Описание

У меня есть страница оплаты, которая включает в себя форму для ввода информации банковского счета. Я инкапсулировал информацию о банковском счете в шаблон модели / редактора. Сама страница имеет свою модель просмотра, что происходит, чтобы содержать свойство BankAccount, которая будет передана в редактор.

[Просмотр моделей]]]

public class PaymentPageModel { 
    public SomeProperty1 { get; set; }
    public SomeProperty2 { get; set; }
    public BankAccount BankAccount { get; set; }
    ...
}

public class BankAccount { 
    public int BankAccountTypeID { get; set; }
    public string BankName { get; set; }
    public string ABACode { get; set; }
    public string AccountNumber { get; set;}
    public IEnumerable<SelectListItem> BankAccountTypes {
        get { ... // Constructs the list }
    }
}

[Страница оплаты HTML]]

<% using (Html.BeginForm()) { %>
<%: Html.EditorFor(m => m.BankAccount) %>
    ... // Other miscellaneous stuff not related to the actual BankAccount
<% } %>

[Шаблон редактора

...
<%: Html.DropDownListFor(m => m.BankAccountTypeID, Model.BankAccountTypes) %>
...

Проблема

Изначально это отлично работало, когда я сильно набрал страницу платежа непосредственно к модели BankAccount. Выпадающий список заполнили должным образом, и выбрано правильное значение из модели.

Недавно я модифицировал страницу, сильно набрав ее к платежному элементу, которая содержит модель BankAccount в качестве свойства. HTML не был изменен. Результатом в настоящее время состоит в том, что все значения HTML в шаблоне редактора наследуются должным образом, за исключением выпадающего списка. Он связывает список значений правильно из списка выбора BankAccountypes, но выбранное значение не связано. Я проверил, чтобы убедиться, что значение, которое предполагается, чтобы быть обязательным для правильной настройки, выводя его прямо рядом с DropDownlist.

Это ездит мне орехи, и делает меня действительно под сомнение надежность моделей моделей и HTML-помощников в целом, особенно если я не могу объединить комплексные модели вида с шаблонами редактора для инкапсуляции презентации / функциональности.

Любые предложения очень ценятся.

Это было полезно?

Решение

Если вы сильно набрали шаблон редактора в PaymentPageModel На вашем главном представлении вместо:

<%: Html.EditorFor(m => m.BankAccount) %>

Вы можете попробовать:

<%: Html.EditorForModel() %>

И в вашем редакторе шаблон:

<%: Html.DropDownListFor(m => m.BankAccount.BankAccountTypeID, 
    Model.BankAccount.BankAccountTypes) %>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top