Обновление страницы MVC 3 с использованием DatePicker - PullRequest
0 голосов
/ 26 марта 2011

У меня проблема, и после 2 часов попытки и ошибки & Google я пришел сюда, чтобы спросить.

Я довольно новичок в веб-разработке и знаком с Ajax.

У меня есть простая страница с указателем даты jquery ui и div с визуализирующим действием:

@using (Html.BeginForm())
{
    <div id="datepicker"></div>    
}

<h2>Lista de trabajos</h2>

<div id="trabajos">
    @Html.Action("List", "Trabajo", new { dia = Model.Fecha })
</div>

Пока все хорошо. Я хочу щелкнуть по дате на сборщике данных (он настроен с помощью скрипта) и снова вызвать это действие с другой датой на @ model.

Проблема в том, что если я использую это:

            onSelect: function (dateText, inst) {
                $("form").submit();
            }

Публикуется идеально, когда я нажимаю на дату, но если я использую:

            onSelect: function (dateText, inst) {
                $("form").submit(function (e) { });
            }

Это больше не публикуется.

Как новичок, я пытаюсь сделать это шаг за шагом. Я пытаюсь просто опубликовать (без ajax сейчас) и отправить новую дату на мой контроллер, так:

Как я отправляю данные (я думаю, что dateText - это то, что я хочу отправить) моему действию (кто ожидает строку). Когда я выполню это, я пойду в Ajax, но если я не смогу отправить дату акции и сделать обновление, чтобы получить новую модель ...

Любая помощь?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 26 марта 2011

Следующий код:

$("form").submit();

немедленно запускает событие отправки и отправляет POST на сервер.

Следующий код:

$("form").submit(function (e) { 

});

просто переопределяет submit обработчик, но не отправляет сразу.Вам нужно нажать на кнопку отправки, и тогда будет вызвана анонимная функция (которая пуста и в конечном итоге будет выполнять обычную отправку, но вам нужно нажать на кнопку отправки).Так что если вы хотите использовать AJAX:

onSelect: function (dateText, inst) {
    var form = $(form);
    $.ajax({
        url: form.attr('action'),
        type: form.attr('method'),
        data: form.serialize(),
        success: function(result) {
            // the form was successfully sent to the server using an AJAX call
            // do something with the result
        }
    });
    return false;
}
0 голосов
/ 26 марта 2011

Вторая форма добавляет обработчик для события отправки, а не отправки формы. Если вы хотите опубликовать форму, используя ajax, вы должны использовать метод post .

onSelect: function (dateText, inst) {
            var $form = $('form');
            $.post( $form.attr('action'), $form.serialize(), function(result) {
               // do something with the result of the post request
            });
          }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...