在 ASP.NET MVC 2 中使用 ViewModel - 多种形式

发布于 2024-08-27 08:38:38 字数 296 浏览 10 评论 0原文

我找不到有关在 ASP.NET MVC 2 ViewModel 方法中使用多种表单的任何文档。

即在内置应用程序中,当您选择“新建 MVC2 Web 应用程序”时,注册页面使用继承如下的 ViewPage:

Inherits="System.Web.Mvc.ViewPage"

我想在具有多个表单的页面上使用该方法,但 RegisterModel 仅支持一种表单。

I couldn't find any documentation around using multiple forms in an ASP.NET MVC 2 ViewModel approach.

i.e. In the built in application when you select New MVC2 web app, the register page uses a ViewPage which inherits like this:

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

I wanted to use that approach on a page with multiple forms, but that RegisterModel only supported one form.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

妳是的陽光 2024-09-03 08:38:38

该方法是使用复合视图模型:

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

希望其他人发现这很有用。

The approach is to use a composite viewmodel:

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

When you do that, inherit the View from it:

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

Then reference the individual models in the page:

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

Hope someone else finds this useful.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文