2010-03-31 4 views
2

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

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

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

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

+0

Можете ли вы быть более конкретным из-за того, почему вам нужно несколько ViewModels? Есть шанс, что новый редактор ForFor является более подходящим направлением? http://stackoverflow.com/questions/1235646/asp-net-mvc-2-html-editorfor-and-custom-editortemplates – R0MANARMY

+0

У меня есть несколько форм на одной странице. Я использую метод проверки модели ASP.NET MVC2. –

+0

Эта первая ссылка, которую я добавил, не была особенно полезна, это лучше http://blogs.msdn.com/nunos/archive/2010/02/08/quick-tips-about-asp-net-mvc-editor-templates .aspx – R0MANARMY

ответ

6

подход заключается в использовании композитного ViewModel: -

namespace MyApp.Models

{ 
    public class MyCompositePageModel 
    { 
     public RegisterModel registerModel; 
     public LoginModel loginModel; 
    } 
} 

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

<%@ 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) %> 

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

Rob