使用 ASP.NET MVC 实现字段验证的最佳方法是啥? [关闭]

Posted

技术标签:

【中文标题】使用 ASP.NET MVC 实现字段验证的最佳方法是啥? [关闭]【英文标题】:What's the best way to implement field validation using ASP.NET MVC? [closed]使用 ASP.NET MVC 实现字段验证的最佳方法是什么? [关闭] 【发布时间】:2010-09-06 05:10:18 【问题描述】:

我正在使用 ASP.NET 构建一个公共网站,作为可交付成果的一部分,我需要创建一个管理站点来输入公共站点中显示的内容的数据,我想知道人们使用什么技术或程序来验证使用 ASP.NET MVC 的条目。

【问题讨论】:

【参考方案1】:

看看JQuery Validation plugin 这个插件太棒了,它实现起来很干净,并且具有您可能需要的所有功能,包括通过 AJAX 进行远程验证。

还可以找到一个示例 MVC 控制器方法here,它基本上使用 JsonResult 操作类型,如:

public JsonResult CheckUserName(string username)

    return Json(CheckValidUsername(username));

【讨论】:

现在(使用 asp.net mvc2 preview 2+)jquery 验证与模型验证集成!【参考方案2】:

IMO 将 xVal 与 jQuery 和 DataAnnotationsModelBinder 结合使用是最佳组合。

但有时,有些验证规则无法在客户端完全检查,因此您需要使用远程客户端验证。

我找到了使用 xVal / jQuery.validate 实现远程客户端验证的方法,以便

验证规则仅保留在您的 ASP.NET MVC 模型中 您只需编写每个验证规则一次,而且只能使用易于测试的 C# 代码。没有 javascript 或其他客户端对应物。 无需分支或以其他方式修改 xVal 或 jquery.validate 对于每个新的远程表单验证规则,您只需从本文中显示的基类派生。

我为此写了blog article,描述了所有细节。

【讨论】:

我不知道你怎么没有得到更多的UPS。太棒了,谢谢!【参考方案3】:

我最喜欢使用基于模型的属性执行客户端和服务器验证的方式。我写了一篇关于这个的短文并发布了源代码,基本上可以让你创建一个这样的类



class User 

    [Required]
    public string Nameget;set;

    [Email][Required]
    public string Email get;set;


将生成适当的 javascript 代码来执行客户端验证,服务器端验证运行器将验证您提交的表单。

阅读here的帖子

【讨论】:

以上是关于使用 ASP.NET MVC 实现字段验证的最佳方法是啥? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

asp.net mvc 站点的安全最佳实践?

如何对asp.net mvc 4中的select2字段进行强制字段验证

ASP .NET MVC在每个字段级别禁用客户端验证

ASP.NET MVC 中密码重置的最佳实践

预提交必填字段验证 ASP .NET MVC

ASP.NET MVC 项目中的客户端验证未验证规则