ASP.NET MVC 3 - Ajax.BeginForm 与 jQuery 表单插件

Posted

技术标签:

【中文标题】ASP.NET MVC 3 - Ajax.BeginForm 与 jQuery 表单插件【英文标题】:ASP.NET MVC 3 - Ajax.BeginForm vs jQuery Form Plugin 【发布时间】:2011-06-22 03:52:41 【问题描述】:

我正在开始一个新的 ASP.NET MVC 3 项目,并且将实现一些默认情况下只读但允许用户通过单击编辑按钮来编辑信息的屏幕。我希望这些屏幕是 AJAXed。我之前曾使用jQuery Form Plugin 在 ASP.NET MVC 2 项目上实现类似的屏幕。

我刚刚发现Ajax.BeginForm() 的存在,我想知道我是否应该使用它,因为它是内置的,而不是使用jQuery 表单插件。我在 Google 上搜索了这两种技术之间的区别,但找不到任何东西。

我想知道在 ASP.NET MVC 3 中应该使用哪一个(或完全不同的)。

在 ASP.NET MVC 中实现 AJAX 表单的最佳实践和库是什么?

Ajax.BeginForm 与 jQuery 表单插件的优缺点是什么?

【问题讨论】:

所以,我从Ajax.BeginForm() 开始,在阅读了回复后发现我无法轻松添加作为对象方法的事件处理程序,我决定改用jQuery 表单插件。 【参考方案1】:

如果你打算使用 Ajax.BeginForm,我建议打开Unobtrusivejavascript。使用内置 mvc 帮助程序的一个好处是它少了一个您需要包含的库。否则,我可以看到的 jQuery.Form 插件的一个优点是可以更好地控制您的事件处理。因为在您有机会做某事之前,您不必担心 MVC ajax 表单会触发。

【讨论】:

【参考方案2】:

我会使用表单插件。

在 MVC 3 中,Ajax 助手基本上是使用 jQuery Ajax 实现的。 (请参阅 Brad 的 Wilsons post 关于 MVC 3 中不显眼的 Ajax。)使用表单插件的好处是您可以更好地控制页面,并且不必使用笨重的 BeginForm API。

【讨论】:

你会如何处理错误?我正在将 MVC 站点转换为使用 AJAX,这很麻烦。通常我只会返回 View(model);发生错误,但这算作 Jquery Form Plugin 的成功。

以上是关于ASP.NET MVC 3 - Ajax.BeginForm 与 jQuery 表单插件的主要内容,如果未能解决你的问题,请参考以下文章

我们是不是正在使用 .Net 3.5 中的 MVC 框架转向经典 ASP?

(转)表单和HTML辅助方法 - ASP.NET MVC 3

ASP .NET 5 MVC 6 Identity 3 Roles Claims Groups [关闭]

ASP.NET MVC 3 文件夹结构

ASP.NET Core MVC 入门到精通 - 3. 使用MediatR

ASP.NET MVC 3 和 NHibernate 脚手架