- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直试图找到一篇像样的文章或片段来解释 Microsoft 包含在 MVC3 中的 JS(验证和 Ajax)文件之间的区别,但我找不到任何东西。
是否有人能解释一下这些差异以及它们应该如何使用(例如,一个是否背负另一个,是否出于 X 原因而使用,等等):
补充一下 - 基本上为什么我要使用 jquery.validate 与不显眼的或 MVC 验证。或者它们与 jquery.validate 等结合使用的目的是什么。Ajax 文件也是如此。
提前非常感谢:)
最佳答案
这是我的 2 美分:
选择第一个,因为它不显眼,这意味着 HTML5 data-* 属性是在输入字段上生成的,并且验证器不显眼地附加到单独的 javascript 文件中。通过 Microsoft 验证,您的最终标记不再是标记,而是与 javascript 混合的标记。这不仅会增加 HTML 页面的大小,还会使它们变得更加丑陋,并且无法从外部静态资源的浏览器缓存功能中受益。
根据项目,我决定是直接使用 jQuery.validate 插件还是受益于自动生成的 HTML5 data-* 属性,并让 jquery.validate.unobtrusive 脚本根据我的一些 DataAnnotations 规则进行自动客户端脚本验证。查看模型。好吧,实际上我不使用 DataAnnotations,而是使用 FluentValidation.NET,但这对客户端来说并不重要,因为它们都会发出 ModelMetaData。我必须同意,通过 ASP.NET MVC 3,Microsoft 在这些方面向前迈出了一步 jquery.validate.unobtrusive 脚本。但基本上,这实际上取决于我正在从事的项目以及我需要的控制量。
以上都不是:-) 我建议您使用纯 jQuery,但如果您必须在 jquery.unobtrusive-ajax 和 MicrosoftAjax 之间进行选择,请选择第一个,原因与前一个完全相同。现在我也许应该解释一下为什么我都不喜欢。我已经指出了所有 Microsoft* 脚本的完全蹩脚之处,所以我们不再重复。甚至微软自己也意识到了他们的错误,从 ASP.NET MVC 3 开始,jQuery 成为默认库,并且包含它们的脚本只是为了与您可能要转换的旧应用程序兼容,但我想在未来的版本中它们将完全消失。问题是为什么纯 jQuery 与 jQuery.unobtrusive-ajax 相比?嗯,通过第一个,我可以更好地控制 AJAX 请求的事件。例如,使用 jquery.unobtrusive-ajax,当 OnSuccess 回调中返回 JSON 对象时,它们不会自动解析为 javascript 对象,您必须手动进行解析,这简直让我发疯。
关于jquery - MVC3 Ajax/JS 文件的快速和肮脏的解释,请 :),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6666788/
当我序列化以下内容时: [Serializable] public class Error { public string Status { get; set; } public st
我是一名优秀的程序员,十分优秀!