Asp.net mvc 4 简单的MVC4不引人注目的ajax不起作用

Asp.net mvc 4 简单的MVC4不引人注目的ajax不起作用,asp.net-mvc-4,ajax.beginform,unobtrusive,unobtrusive-ajax,Asp.net Mvc 4,Ajax.beginform,Unobtrusive,Unobtrusive Ajax,我正在编写一个非常简单的MVC4测试页面,而不引人注目的Ajax似乎不起作用。当我单击我的提交按钮时,页面未提交 我有一个断点是VS,可以判断没有请求 我正在使用Firefox,当我单击submit按钮时,Web控制台显示此JavaScript错误: ---传递给getElementById()的空字符串 出现在中的第16行。---jquery.unobtrusive-ajax.js 我设置ajax选项如下: AjaxOptions ajaxOpts = new AjaxOptions { U

我正在编写一个非常简单的MVC4测试页面,而不引人注目的Ajax似乎不起作用。当我单击我的提交按钮时,页面未提交

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

我正在使用Firefox,当我单击submit按钮时,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>
}
然后有一个请求,我的断点被命中,并且没有JS错误。


我使用NuGet获得了jQuery和不引人注目的ajax的最新版本。这是 查看源中的“我的脚本”标记(按顺序排列):





下面是呈现的表单:

<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>  

/*--我的下拉列表。。。。。

提交



有什么想法吗?

我有办法

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

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


我原以为Ajax.BeginForm()取代了Html.BeginForm,但我似乎两者都需要。对吗?

您的操作是HttpPost吗?不,不是HttpPost。这在现阶段重要吗?浏览器似乎没有发送请求。没错,它甚至还没有到达控制器。您不需要Ajax.BeginForm和Html.BeginForm
<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>