Я искал googling/SO: этот вопрос какое-то время, и многие, кажется, делятся этим, но я не нашел успешного решения моей проблемы.
Использование 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" на пустую страницу, а не в целевой div.
Изменить: Также обратите внимание, что если я удалю 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, но безрезультатно.