Использование ViewModels в ASP.NET MVC 2 - несколько форм

Мне не удалось найти никакой документации по использованию нескольких форм в подходе ASP.NET MVC 2 ViewModel.

т.е. во встроенном приложении, когда вы выбираете новое веб-приложение MVC2, на странице регистрации используется ViewPage, который наследуется следующим образом:

Inherits="System.Web.Mvc.ViewPage<rs30UserWeb.Models.RegisterModel>"

Я хотел использовать этот подход на странице с несколькими формами, но эта RegisterModel поддерживала только одну форму.


person Rob Ellis    schedule 31.03.2010    source источник
comment
Не могли бы вы подробнее рассказать, зачем вам нужно несколько ViewModels? Есть шанс, что новый EditorFor - более подходящее направление? stackoverflow .com / questions / 1235646 /   -  person R0MANARMY    schedule 31.03.2010
comment
У меня есть несколько форм на одной странице. Я использую подход к проверке модели ASP.NET MVC2.   -  person Rob Ellis    schedule 31.03.2010
comment
Эта первая ссылка, которую я добавил, не особо помогла, так лучше blogs.msdn.com/nunos/archive/2010/02/08/   -  person R0MANARMY    schedule 31.03.2010


Ответы (1)


Подход заключается в использовании составной модели представления:

namespace MyApp.Models
{
    public class MyCompositePageModel
    {
        public RegisterModel registerModel;
        public LoginModel loginModel;
    }
}

Когда вы это сделаете, унаследуйте от него View:

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<rs30UserWeb.Models.RegisterModel>" %>

Затем укажите на странице ссылки на отдельные модели:

<%= Html.TextBoxFor(m => m.loginModel.Email) %>
<%= Html.ValidationMessageFor(m => m.loginModel.Email) %>

Надеюсь, кто-то еще сочтет это полезным.

person Rob Ellis    schedule 31.03.2010