为什么在mvc中使用Ajax.BeginForm

时间:2014-02-15 17:59:06

标签: javascript jquery ajax asp.net-mvc-4

我有几个关于Ajax表单的问题,我已经阅读了一些有关ajax vx html表单的信息。人们说的唯一原因是如果你想留在同一页面上使用ajax else html,重定向到另一个页面。

使用ajax到html.beginform时还有其他注意事项吗?

另一个问题是,使用Ajax.Beginform然后编写脚本是否有区别:

 $("form").submit(function () {
                $.ajax({
                     success: function (result) {
                        $('#result').html(result);
                    }
                });
        });

或者没有编写脚本,我只是没有真正看到差异,虽然在很多例子中我看到用户这样做......但那又有什么意义呢?如果你有这个:

 @using (Ajax.BeginForm("Action", "Controller", new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "result" }, new { @class = "form-horizontal", role = "form" }))
            {}

我可以使用ajax jquery脚本基本相同的另一个问题,而不是ajax,我可以用Html.Beginfrom做,然后在提交我用ajax调用函数...

我经常看到的另一件事是当jj ajax在网址中发生post方法时我喜欢=?length = 7(我不知道这个参数来自哪里)有人想过吗?

有很多不同的方法,但没有任何地方说什么是最好的做法等...

也许如果有人有关于某些阅读的链接我会很感激。

1 个答案:

答案 0 :(得分:3)

使用@Ajax.BeginForm()@Html.BeginForm()和在您的网页上创建<form>并使用Javascript / jQuery通过Ajax提交表单之间没有区别。正如您所听到的,使用AJAX允许浏览器保存在页面上,只刷新部分DOM而不是加载整个新页面。这通常会带来更流畅的用户体验。

没有“正确”的方法可以做到这一点,这是你感到满意的。 @Ajax.BeginForm()是实现这一目标的最快捷,最简单的方法。但是,如果你来自Javascript背景并希望自己编写所有代码,那么这样做并没有什么不妥,除了花更多时间来编写AJAX辅助方法在幕后为你做的事情。 / p>

要回答关于“最佳做法”的问题,如果您正在制作MVC网站,那么您应该使用可用的技术。但是,无论您选择什么,不可否认的最佳做法是选择一种做事方式并在整个项目中坚持下去。

至于要阅读的内容,我更喜欢网站上的书籍,所以我无法帮助您快速轻松地解决这个问题。这也是谷歌的目的。