2010-09-14 2 views
2

У меня есть следующий класс:Модели Binding свойства с неявным преобразованием из строки в тип

public class PostCode { 
    public string Name { get; set; } 

    public static implicit operator PostCode(string postCode) 
    { 
     return new PostCode {Name = postCode}; 
    } 
} 

Он образует часть Address класса, который является моделью для шаблона хелперов (EditorTemplates> Address.ascx).

Этот вспомогательный шаблон визуализируется с использованием <%= Html.EditorFor(model => model.Address)%> где Address - это свойство на другом объекте.

Все, что связано с адресом, корректно связано при публикации метода действия, кроме объекта PostCode. Вероятно, это связано с тем, что он хранится как строка PostCode вместо строки.

Как я могу заставить привязку к модели соблюдать этот актерский состав?

+0

Вы можете показать вспомогательный шаблон? в методе получения вашего сообщения я добавлю 'CollectionCollection collection', чтобы увидеть, как все происходит. Возможно, именование вашего поля не совсем то же самое, что ваш связанный элемент в форме. – Stefanvds

+0

Я проверил коллекцию AddKeys, и значение есть в объекте Request. Он просто не попадает на связанный объект. –

+0

Каково имя объекта в представлении и AddKeys. стандартное связующее устройство будет нуждаться в объекте с именем «Postcode.Name» – Clicktricity

ответ

0

Я закончил использовать строку для представления почтового индекса в ViewModel и сделал преобразование в сопоставлении с моей сущностью домена.

0

У вас есть EditorTemplate для PostCode? Если не создать его.

0

Это похоже на проблему, которая у меня была.

Смотреть это .net mvc custom types in urls

Вы должны реализовать свою собственную модель связующего, чтобы сделать работу.