Я гуглял / ТАК: эта проблема уже некоторое время, и многие, кажется, делятся этим, но я не нашел какого-либо успешного решения моей проблемы.
Использование MVC3 и Razor.
Мастер-страница содержит:
<script src="@Url.Content("~/Scripts/jquery-1.5.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>
AjaxTest.cshtml содержит:
<div id="AjaxTestDiv">content</div>
@Ajax.ActionLink("Update", "AjaxTester", new AjaxOptions { UpdateTargetId = "AjaxTestDiv" })
Метод действия AjaxTester:
public string AjaxTester()
{
if (Request.IsAjaxRequest())
{
return DateTime.Now.ToString();
}
else
{
return "FAIL";
}
}
Я всегда возвращаю сообщение "FAIL" на пустую страницу, а не в целевой ячейке.
Редактировать: Также обратите внимание, что если я удалю if (Request.IsAjaxRequest ()), я все равно не верну ничего в целевой div, а вместо этого пустую страницу.
Edit2: Глядя на сгенерированный HTML, это моя ссылка:
<a data-ajax="true" data-ajax-method="POST" data-ajax-mode="replace"
data-ajax-update="#AjaxTestDiv" href="/Area/AjaxTester">Update</a>
Попытался переключить метод на GET, но безрезультатно.