Ajax.BeginForm指定"GET"类型的发布

now*_*ed. 3 c# forms html5 asp.net-mvc-4 .net-4.5

我的观点如下:

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>

@using (Ajax.BeginForm(new AjaxOptions { HttpMethod = "Get", InsertionMode = InsertionMode.Replace, UpdateTargetId = "DisplayPatients" }))
{
    <input type="search" name="searchTerm" />
    <input type="submit" value="Do Search" />
}  
Run Code Online (Sandbox Code Playgroud)

每当我尝试编译并查看我得到的html页面的来源时,我看到,

<form action="/" data-ajax="true" data-ajax-method="Get" data-ajax-mode="replace" data-ajax-update="#DisplayPatients" id="form0" 
   method="post">    
Run Code Online (Sandbox Code Playgroud)

但是,在我的Ajax.BeginForm中,我指定了HttpMethod = Get.尽管如此,我还是method = "post"在输出html页面中找到了.

有什么想法吗?提前致谢.

编辑:

我甚至view-source在浏览器中检查了我的页面源代码.由此可见:

<script src="/Scripts/jquery.unobtrusive-ajax.js" type="text/javascript"></script>
<script src="/Scripts/jquery.validate.js" type="text/javascript"></script>
<script src="/Scripts/jquery.validate.unobtrusive.js" type="text/javascript"></script>

<form action="/" data-ajax="true" data-ajax-method="Get" data-ajax-mode="replace" data-ajax-update="#DisplayPatients" id="form0" method="post">    <input type="search" name="searchTerm" />
Run Code Online (Sandbox Code Playgroud)

(注意脚本(jquery-unobstrusive)实际上就在那里)

Dar*_*rov 7

但是,在我的Ajax.BeginForm中,我指定了HttpMethod = Get.尽管如此,我在输出html页面中得到了method ="post".

jquery.unobtrusive-ajax.js脚本忽略该method属性并使用data-ajax-method(如果存在).所以实际的请求将是GET.查看Google Chrome开发者控制台的"网络"标签即可查看.

  • 你有`jquery.js`吗?您在更新后的问题中显示的内容是3个javascript包含但如果您没有包含jquery.js**它们将无效.**它们之前是**.另请查看开发人员工具栏的控制台选项卡,以了解潜在的javascript错误. (2认同)
  • 是的,它们是简单的jquery插件. (2认同)