Я хочу получить некоторую привязку, работающую в моем приложении mvc. Я обнаружил, что вложенные свойства автоматически не связаны связующим устройством по умолчанию в RC1-выпуске asp.net mvc. У меня есть следующий класс структуру:Модель привязки вложенных свойств в asp.net mvc
public class Contact{
public int Id { get; set; }
public Name Name { get; set; }
public string Email { get; set; }
}
Где Name
определяется как:
public class Name{
public string Forename { get; set; }
public string Surname { get; set; }
}
Моя точка зрения определяется по линиям:
using(Html.BeginForm()){
Html.Textbox("Name.Forename", Model.Name.Forename);
Html.Textbox("Name.Surname", Model.Name.Surname);
Html.Textbox("Email", Model.Email);
Html.SubmitButton("save", "Save");
}
Мои действия контроллера определяется как:
public ActionResult Save(int id, FormCollection submittedValues){
Contact contact = get contact from database;
UpdateModel(contact, submittedValues.ToValueProvider());
//at this point the Name property has not been successfully populated using the default model binder!!!
}
Объект Email
успешно связан, но не Name.Forename
или Name.Surname
. Может ли кто-нибудь сказать, должно ли это работать с использованием привязки модели по умолчанию, и я делаю что-то неправильно или если это не работает, и мне нужно свернуть собственный код для привязки вложенных свойств к объектам модели?
Это отлично работает, спасибо tvanfosson. – 2009-02-27 13:14:31
SingleOrDefault можно напрямую вызывать с выражением lamda –
@PhilippM вы абсолютно правы, обновлены! – tvanfosson