【问题标题】:Simple MVC4 unobtrusive ajax not working简单的 MVC4 不显眼的 ajax 不起作用
【发布时间】:2013-08-01 05:46:55
【问题描述】:

我正在编写一个非常简单的 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>  




有什么想法吗?

【问题讨论】:

  • 你的 Action 是 HttpPost 吗?
  • 不,这不是 HttpPost。在这个阶段这很重要吗?浏览器似乎没有发送请求。
  • 你是对的,它甚至还没有到达控制器。

标签: asp.net-mvc-4 ajax.beginform unobtrusive unobtrusive-ajax


【解决方案1】:

我已经成功了。

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

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

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

【讨论】:

  • 您不需要同时使用 Ajax.BeginForm 和 Html.BeginForm
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-23
  • 1970-01-01
  • 1970-01-01
  • 2015-05-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多