Будучи новым для MVC, я пытаюсь изменить уже существующие приложения со следующей структурой:Asp.net ViewModel и контроллер MVC наследование
public ActionResult Create()
{
return Edit(new Book());
}
Метод Edit использует EditView ViewModel. Мне нужно было ссылаться на идентификатор, поэтому я добавил идентификатор в ViewModel, который отлично подходит для редактирования книг, но генерирует исключение при создании книг, поскольку, конечно, для модели в данный момент не существует id.
Что я сделал это: Скопировать свойства из EditView в CreateView ViewModel, и просто мой EditView продлить CreateView как:
public class EditView : CreateView
{
public Guid Id { get; set; }
}
я затем заменить ссылку на метод редактирования выше с
return Create(new Book());
и код создать метод в соответствии с методом редактирования, но без ссылки на свойства идентификатора, который работает, но выглядит некрасиво из-за большого количества дублированного кода - теперь я долго редактировать и создавать методы в мой контроллер, который почти идентичны бару id pr operty:
частный ActionResult Edit (Book книга) { ....
return View("Edit", new EditView
{
Id = book.Id,
(rest of the object initializer code identical to the Create method)
Это только, кажется, не нравится, как идти - я мог случайно получить направление в качестве примера на это пожалуйста?