1

我正在尝试通过 ajax 提交表单,我可以在其中看到使用 ajax 的两个选项。

方法1

@{
    ViewBag.Title = "Index";
    var options = new AjaxOptions()
    {
      Url = Url.Action("Index", "Add"),
      LoadingElementId = "saving",
      LoadingElementDuration = 2000,
      Confirm = "Are you sure you want to submit?"
    };  
 }

@using (Ajax.BeginForm(options))
{
    <div id="saving">Loading...</div>
    <input type="submit" />
}

方法2

@using (Html.BeginForm(options))
{
    <input type="submit" />
}

    $.ajax({
        type: 'POST',
        url: 'Add',
        dataType: 'json',
        data: { $(form).serialize() },
        success: function (data) {
            if (data != null) {
                console.log(data);
            }
        }
    }); 
  1. Method1 和 Method2 都使用 AJAX 有什么区别?
  2. 如果表单包含大量输入元素,哪种方法最优化?
  3. 哪一种被认为是通过 AJAX 发布的标准做法?

有任何想法吗?

4

1 回答 1

1

Ajax.Form 使一切变得简单,或者简单地说,使大部分事情自动化。像 ModelBinder 一样,使我们的模型输入控件之间的绑定变得容易。

$.ajax 让您可以完全控制您的代码。一切都是手动的

这完全取决于情况选择什么。如果我想直接将值传递给控制器​​操作,我更喜欢 Ajax.BeginForm。当我想传递一些复杂的东西(比如解析整个 html 表并创建一些东西并最终传递它)我会更喜欢 $.jQuery

例子 -

我有一个带有一些控件的表单,例如 CustomerName、Address、Phone 不,我更喜欢 mvc ajax

我有一个包含许多客户记录的表(网格),我想传递 Json 数组,我更喜欢 jQuery

希望它有所帮助

于 2014-03-26T12:42:43.863 回答