作为新的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)
这似乎并不喜欢去的方式 - 我可以或许通过举例的方式得到一些方向这个好吗?