0

我正在编写一个非常简单的 MVC4 测试页面,并且不显眼的 Ajax 似乎无法正常工作。当我单击我的提交按钮时,该页面未提交。

我有一个断点是 VS,可以判断没有请求。

我正在使用 Firefox,当我单击提交按钮时,Web 控制台显示此 JavaScript 错误:
--- 传递给 getElementById() 的空字符串

这发生在第 16 行
。--- jquery.unobtrusive-ajax.js



我设置 ajax 选项如下:

AjaxOptions ajaxOpts = new AjaxOptions { UpdateTargetId = "officeList", Confirm = "Are you sure?", Url = Url.Action("GetOfficeData") };

这是我的 AjaxForm:

@using (Ajax.BeginForm("GetOfficeData", ajaxOpts))
{
    <div>
        @Html.DropDownList("orgList", new SelectList(Model.Organizations, "ORGID", "ORGNAME"));

        <button type="submit" id="btnSubmit">Submit</button> 
    </div>
}

当我单击提交按钮(在 ajax 选项中定义)时,我确实得到了“你确定提示”。


如果我将 Ajax.BeginForm 更改为:

@using (Html.BeginForm())
...

然后有一个请求,我的断点被命中,并且没有 JS 错误。


我使用 NuGet 来获取 jQuery 和 unobtrusive-ajax 的最新版本。这是来自视图源的我的脚本标签(所有这些标签 - 按顺序):

<script src="/Scripts/jquery-2.0.3.js"></script>
<script src="/Scripts/DataTables-1.9.4/media/js/jquery.dataTables.js"></script>
<script src="/Scripts/jquery.unobtrusive-ajax.js"></script>
<script src="/Scripts/jquery.validate.js"></script>
<script src="/Scripts/jquery.validate.unobtrusive.js"></script>
<script src="/Scripts/modernizr-2.5.3.js"></script>




这是呈现的形式:

<form action="/Selectee/GetOfficeData" data-ajax="true" data-ajax-confirm="Are you sure?" data-ajax-mode="replace" data-ajax-update="#officeList" data-ajax-url="/Selectee/GetOfficeData" id="form0" method="post">            
   <div>
      /*--my drop down .....
      <br />
      <button type="submit" id="btnSubmit">Submit</button> 
   </div>
</form>  




有任何想法吗?

4

1 回答 1

0

我有它的工作。

我没有 Html.BeginForm(),只有 Ajax.BeginForm()。那有效吗?

我添加了一个带有 Ajax.BeginForm() 的 Html.BeginForm() 以及该表单内的所有控件,它开始工作。

我认为 Ajax.BeginForm() 代替了 Html.BeginForm,但看来我需要两者。那是对的吗?

于 2013-07-31T19:44:48.427 回答