Я испытываю ту же проблему, о которой многие люди спрашивали ранее, когда Ajax.BeginForm не отправляет вызов как ajax, т.е. Request.IsAjaxRequest () == false, но мне не повезло с предлагаемыми решениями (отсутствует js-файлы, установите «UnobtrusiveJavascript» и т. д.)
Мой _ Файл Layout.cshtml выглядит следующим образом:
<script src="@Url.Content("~/Scripts/jquery-1.5.1.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/MicrosoftAjax.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/MicrosoftMvcAjax.js")" type="text/javascript"></script>
Web.config
<add key="webpages:Version" value="1.0.0.0"/>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
View
@using (Ajax.BeginForm("AjaxTest", new AjaxOptions { UpdateTargetId = "result" }))
{
<button class="btn" onclick="this.form.submit();">Hit Me!</button>
}
<div id="result"></div>
Контроллер
[HttpPost]
public ActionResult AjaxTest(FormCollection formCollection)
{
bool isAjax = Request.IsAjaxRequest();
return Content("Hello World");
}
Я запустил его через Firebug и не получил никаких ошибок.
Что я здесь не так делаю?