Как мне вызвать/обновить представление из установки jQuery Datepicker() в макете?
У меня есть настройка Datepicker в моем представлении макета следующим образом:
<header>
<div class="float-left" id="CalenderView">
<span class="datepicker">Date:
<input type="text" id="datepicker" size="10"></span>
</div>
</header>
Скрипт в нижнем колонтитуле
<script>
$(function () {
$("#datepicker").datepicker({
dateFormat: 'mm-dd-yy',
onSelect: function () {
var date = $("#datepicker").datepicker('getDate');
$.ajax({
type: 'POST',
data: { "date": date },
url: '/Home/Calender',
dataType: 'json',
success: function (response) {},
error: function (data) { }
});
}
});
});
</script>
В моем HomeController...
public ActionResult Calender(String date)
{
var rev = new DashboardRevenue();
rev.PPMRevenue = 1500;
rev.ProductRev = 1000;
if (Request.IsAjaxRequest())
{
return View("Dashboard",rev);
}
else
{
return View();
}
}
Оператор возврата в контроллере игнорируется. Первоначальный вид всегда отображается.
Request.IsAjaxRequest()
просматривает заголовок "X-Requested-With" и проверяет, является ли это значение "XMLHttpRequest".
request.Headers["X-Requested-With"] == "XMLHttpRequest"
Если он не входит в этот оператор if, значение заголовка, скорее всего, не будет включено. Используя инструменты разработчика в вашем браузере или Fiddler, проверьте, какие заголовки передаются.
Источник для IsAjaxRequest.
success
части вашего обратного вызова ajax вы ничего не делаете сresponse
. У вас должно быть что-то вроде:function (response) { $('#myDashboard').html(response); }