C# ASP.NET MVC中的验证
我在当前项目中使用C# ASP.NET MVC中的验证,c#,asp.net-mvc,validation,C#,Asp.net Mvc,Validation,我在当前项目中使用ASP.NET MVC 4,以MS CRM作为后端。(因此没有实体框架)。我们有一系列非常长的页面(大约10-15页),客户必须填写这些页面作为其应用程序的一部分。保存每个页面时,数据将存储在CRM中的相应实体中。填写完所有15页后,他们提交申请 要求是业务部门不希望强制执行页面级验证。由于页面太长,他们希望让用户保存数据,而不必一次性填充整个页面。在这15页的末尾,在“查看您的应用程序”页上,他们希望对保存的数据运行所有验证规则,并检查是否符合要求 MVC验证在这种情况下有效
ASP.NET MVC 4
,以MS CRM
作为后端。(因此没有实体框架)。我们有一系列非常长的页面(大约10-15页),客户必须填写这些页面作为其应用程序的一部分。保存每个页面时,数据将存储在CRM
中的相应实体中。填写完所有15页后,他们提交申请
要求是业务部门不希望强制执行页面级验证。由于页面太长,他们希望让用户保存数据,而不必一次性填充整个页面。在这15页的末尾,在“查看您的应用程序”页上,他们希望对保存的数据运行所有验证规则,并检查是否符合要求
MVC支持我使用的多种验证方法 1-在模型上使用数据注释(每个属性) 2-在表示视图的控制器上,在当前控制器上添加数据注释 3-在HTML对象(如HTML)上使用Jquery进行验证
4-使用Razor引擎上的角色和If conditions/Switch case进行验证您可以创建视图模型列表,然后在每个视图模型上调用modelstae.isvalid,并以能够在预览页面中显示的方式处理错误 然而,这是不必要的复杂,从用户体验的角度来看,这将是次优体验。我将非常仔细地重新考虑对预览页面的要求,在该页面中,所有错误都被聚合并显示 是的,这是可能的。 您可以在全局页面中启用和禁用整个应用程序的验证
<configuration>
<appSettings>
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
</configuration>
您还可以实际地将页面的ClientValidationEnabled设置为false 您甚至可以使用formData validation,这是在实时环境中使用的,它非常有用,可以应用于每个必需的字段控件,给示例代码看一看
if (string.IsNullOrWhiteSpace(Convert.ToString(postedFormData["UserName"])))
{
LoginViewModel.ReturnMessage.Clear();
LoginViewModel.ReturnMessage.Add("Enter Username");
LoginViewModel.ReturnStatus = false;
}
else if (string.IsNullOrWhiteSpace(Convert.ToString(postedFormData["Password"])))
{
LoginViewModel.ReturnMessage.Clear();
LoginViewModel.ReturnMessage.Add("Enter Password");
LoginViewModel.ReturnStatus = false;
}
当您在方法中传递用户名和密码时,请以这种方式调用它
LoginViewModel = LoginApplicationService.ValidateLogIn(LoginViewModel.LoginDataModel.UserName, LoginViewModel.LoginDataModel.Password)
它在MVC4.5中使用,它处理空文本字段以及自定义验证,例如,无效用户等。。对于验证方法,您必须自定义代码,以上只是一个提示,但非常有效。您可以使用第一个解决方案,从DB中获取all字段,并在c代码本身中进行验证,这是本例中唯一的解决方案。