Как решить, Передача 2 ViewModels по одной в ascx странице - PullRequest
2 голосов
/ 08 декабря 2010

У меня есть 2 модели представления (CreateVM, EditVM) с Create.aspx и Edit.aspx. Оба совместно используют шаблон с именем CreateEditForm.ascx.

Теперь проблема в шаблоне CreateEditForm.ascx. Мне нужно определить модель, которая когда-то будет вышеупомянутой ViewModel. Предположим, что CreateEditForm.ascx определил CreateVM, чем я не могу передать EditVM из Edit ActionResult.

Как решить эту проблему, чтобы мой CreateEditForm.ascx мог принимать обе модели представления. Какой-нибудь общий стиль?

Надеюсь, вы, ребята, поняли мой вопрос.

1 Ответ

0 голосов
/ 08 декабря 2010

Существует несколько возможных подходов:

  1. Если ваш пользовательский интерфейс создания и пользовательский интерфейс редактирования очень похожи (например, если они отличаются только наличием поля идентификатора)), вы можете использовать только одну модель представления и выполнить некоторую условную логику, например, if (Model.Id == null).
  2. Если ваш пользовательский интерфейс создания и пользовательский интерфейс редактирования очень похожи , вы могли бытакже использует две разные модели представления, которые реализуют общий интерфейс и создают частичное представление, которое отображает только общие поля, например

    public class SomethingEditViewModel : ISomethingViewModel { }

    public class SomethingCreateViewModel : ISomethingViewModel { }

    public interface ISomethingViewModel { // define the common fields here }

  3. Если ваш пользовательский интерфейс создания и редактирования отличается , просто используйте 2 отдельные модели представления и, следовательно, 2 отдельных представления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...