Вызов представления MVC из jQuery Datepicker ()

0

Как мне вызвать/обновить представление из установки 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();
        }
    }

Оператор возврата в контроллере игнорируется. Первоначальный вид всегда отображается.

Теги:
datepicker
asp.net-mvc

1 ответ

1
Лучший ответ

Request.IsAjaxRequest() просматривает заголовок "X-Requested-With" и проверяет, является ли это значение "XMLHttpRequest".

request.Headers["X-Requested-With"] == "XMLHttpRequest"

Если он не входит в этот оператор if, значение заголовка, скорее всего, не будет включено. Используя инструменты разработчика в вашем браузере или Fiddler, проверьте, какие заголовки передаются.

Источник для IsAjaxRequest.

  • 0
    Если я установлю перерыв при возврате просмотра («Панель инструментов», рев); в контроллере это бьет. Таким образом, Request.IsAjaxRequest () работает. Однако обратный просмотр (...) не влияет на то, что отображается.
  • 0
    В success части вашего обратного вызова ajax вы ничего не делаете с response . У вас должно быть что-то вроде: function (response) { $('#myDashboard').html(response); }
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню