Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 与在ASP.NET MVC3中使用由两个模型组成的主模型冲突_Asp.net Mvc 3 - Fatal编程技术网

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或其他)当单击忘记密码链接时重置为空