我有一个带有提交按钮的ajax表单,但是当我点击提交按钮时,我得到404页面未找到错误。
我的部分观点:
@using (Ajax.BeginForm("Index", "Maps", null, ajaxOptions, new { @class = "form-search" }))
{
...
...
<button type="submit" class="btn">Search</button>
}
ajaxOptions变量定义如下:
var ajaxOptions = new AjaxOptions
{
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "filter-results",
LoadingElementId = "filter-loading",
LoadingElementDuration = 2000,
OnFailure = "showAjaxError",
Url = Url.Action("Index")
};
这在我的浏览器(Chrome)中呈现如下:
<form action="/Maps" class="form-search" data-ajax="true" data-ajax-failure="showAjaxError" data-ajax-loading="#filter-loading" data-ajax-loading-duration="2000" data-ajax-mode="replace" data-ajax-update="#filter-results" data-ajax-url="/Maps" id="form0" method="post"> <div class="well well-small">
<div class="input-append">
<input type="text" class="span3">
<button type="submit" class="btn">Search</button>
</div>
<div class="input-prepend pull-right">
<button type="submit" class="btn">Items Per Page</button>
<input type="number" name="ItemsPerPage" class="span1" value="10">
</div>
</div>
</form>
404错误说:
Requested URL: /Maps
我可以将其粘贴到我的浏览器中并且可以正常工作:
http://localhost:7374/Maps
我想我正在引用正确的javascript文件 - 查看我看到的页面源:
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/mvc/3.0/jquery.unobtrusive-ajax.min.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.0/jquery.validate.min.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.10.0/jquery-ui.min.js"></script>
在我的Web.config中,我有这个:
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
答案 0 :(得分:3)
MapsController
中的控制器Index
是否仅接受HttpGet
。因为您使用POST
方法Url = Url.Action("Index")
?.live
方法,文件jquery.unobtrusive-ajax.js
使用此方法。如果你需要使用jQuery 1.9+,你必须改变它。 第3点的西班牙语解决方案(link)。
答案 1 :(得分:0)
也许您的控制器操作标有HttpGetAttribute?据我所知,如果您使用的是Ajax助手,您还应该添加对microsoft的ajax脚本的引用:MicrosoftAjax.js,MicrosoftMvcAjax.js和MicrosoftMvcValidation.js
答案 2 :(得分:0)
出于某种原因,这不适用于jquery 1.9.0 或 1.9.1 ,但与之前的版本相同。
使用:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
不起作用(404错误):
<script src="http://code.jquery.com/jquery-latest.js"></script>
和
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
和
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>