2012-05-24 2 views
1

Я новичок в MVC3 и столкнулся с небольшой проблемой. Я просматривал интернет и рассматривал такие темы, как сложная привязка модели и т. Д., Но безрезультатно. Если это простой вопрос, Извиняюсь заранее.MVC3 Razor Model - Обновление модели

Вот что мои классы выглядеть следующим образом:

public class Vod 
{ 
    public virtual int id {get; set;} 
    public virtual string myname {get; set;} 
    public virtual Metadata Metadata {get; set;} 
} 

public class Metadata 
{ 
    public System.Datetime? dtmCreationDate {get; set;} 
    public string strCreatedBy {get; set;} 
    public string strModifiedBy {get; set;} 
    public System.Datetime? dtmModifiedDate {get; set;} 
} 

А вот пример моего редактирования контроллера:

[HttpPost] 
public ActionResult Edit(Vod vod) 
{ 
    if (ModelState.IsValid) 
    { 
     db.Entry(vod).State = EntityState.Modified; 
     vod.Metadata.strModifiedBy = "modified"; 
     vod.Metadata.dtmLastModified = DateTime.Now; 
     db.SaveChanges(); 
     return RedirectToAction("Index"); 
    } 
    return View(vod); 
} 

Моя проблема пытается выяснить, как установить эти значения по умолчанию в мой контроллер когда я создаю или редактирую запись и сохраняю значения в моей базе данных. Прямо сейчас код выше не работает, потому что я не делаю его правильно (ссылка на объект не установлена ​​в экземпляр объекта.)

ответ

1

Я не могу точно сказать, почему он не является обязательным, не видя ваш взгляд. Тем не менее, не привязывайте свою модель домена (vod) к вашему действию. Используйте модель представления, которая содержит свойства vod, которые вам нужны.

public class VodViewModel 
{ 
    public int id { get; set; } 
    public string myname { get; set; } 
    //any properties of Metadata you need. 
} 

public ActionResult Edit(VodViewModel model) 

Теперь вы можете получить води с соответствующим идентификатором из базы данных (и создать новый экземпляр с правильным по умолчанию, если он не существует). Затем измените свой vod, основываясь на свойствах в вашей модели просмотра, а затем сохраните vod.

+0

Я нашел то, что искал. [Ссылка] (http://weblogs.asp.net/manavi/archive/2011/03/28/associations-in-ef-4-1-code-first-part-2-complex-types.aspx) – eproms

Смежные вопросы