Ajax.BeginForm与Html.BeginForm

时间:2013-03-02 08:04:08

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

我正在尝试通过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 个答案:

答案 0 :(得分:1)

Ajax.Form使一切变得简单,或者用简单的单词使大部分内容自动化。像ModelBinder一样,我们的模型输入控制之间的绑定很容易。

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

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

示例 -

我有一个表格,其中包含一些控件,如客户名称,地址,电话号码我更喜欢mvc ajax

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

希望有所帮助