Asp.net mvc 3 与在ASP.NET MVC3中使用由两个模型组成的主模型冲突

Asp.net mvc 3 与在ASP.NET MVC3中使用由两个模型组成的主模型冲突,asp.net-mvc-3,Asp.net Mvc 3,我正在为我的MVC3网站创建一个登录屏幕。显然,用户是从这个页面登录的,但是如果他们忘记了密码,他们可以单击一个链接,然后Javascript会隐藏登录,然后会出现一个忘记的页面,在那里他们可以输入他们的电子邮件地址。因此,我有一个LogOnModel,它要求用户名和密码字段有一个值。ForgotModel要求emailAddress字段具有一个值。然后在页面上,我使用了一个LogOnMaster模型,该模型由这两个部分组成 public class LogOnMasterModel : Mas

我正在为我的MVC3网站创建一个登录屏幕。显然,用户是从这个页面登录的,但是如果他们忘记了密码,他们可以单击一个链接,然后Javascript会隐藏登录,然后会出现一个忘记的页面,在那里他们可以输入他们的电子邮件地址。因此,我有一个LogOnModel,它要求用户名和密码字段有一个值。ForgotModel要求emailAddress字段具有一个值。然后在页面上,我使用了一个LogOnMaster模型,该模型由这两个部分组成

public class LogOnMasterModel : MasterViewModel
{
    public LogOnModel LoginViewModel { get; set; }
    public ForgettenModel ForgottenViewModel { get; set; }
} 
问题是,当我单击提交按钮登录时,它希望电子邮件地址字段有一个值。如何使其仅在登录提交按钮上验证LoginViewModel,并且仅在单击忘记提交按钮时验证ForgottenModel

如果需要,我可以共享代码


我对完全不同的解决方案持开放态度

有几种方法可以使用。第一种方法涉及使用自定义验证器,该验证器确定是否填充用户名/密码字段,然后不需要电子邮件地址。您可以尝试的第二种方法,因为所有内容显然都是用JavaScript运行的,就是用一些默认忽略的值填充电子邮件地址字段(invalid@emailaddress.org或其他)当单击忘记密码链接时重置为空