作爲新的MVC,我試圖用以下結構編輯預先存在的應用程序:Asp.net視圖模型和控制器MVC繼承
public ActionResult Create()
{
return Edit(new Book());
}
編輯方法使用EditView中視圖模型。我需要引用一個id,因此我向ViewModel添加了一個id,這對於編輯書籍非常有用,但在創建書籍時引發異常,因爲當時沒有id存在。
我所做的是:屬性從EditView中成CreateView的視圖模型複製,只是有我EditView中延伸CreateView的爲:
public class EditView : CreateView
{
public Guid Id { get; set; }
}
我然後用替換上述參照編輯方法
return Create(new Book());
和代碼create方法按編輯方法,但沒有參考ID屬性,它的作品,但看起來很難看,由於大量的重複代碼 - 我現在有長的編輯和創建在我的控制方法,其是幾乎相同的酒吧ID公關operty:
私人的ActionResult編輯(書書) { ....
return View("Edit", new EditView
{
Id = book.Id,
(rest of the object initializer code identical to the Create method)
這似乎並不喜歡去的方式 - 我可以或許通過舉例的方式得到一些方向這個好嗎?