Вопрос:

В MVC 4, как сделать один пост / вызов и действие на контроллере

javascript asp.net-mvc-4

27 просмотра

2 ответа

4 Репутация автора

Я пытаюсь вызвать действие на контроллере при изменении значения в DatePicker. Всякий раз, когда javascript запускает, параметр 'requestDate' имеет значение null. Заранее спасибо за ваш опыт.

контроллер

[HttpPost]
public ActionResult GetSummaryByDate(string requestDate)
{
    return View(_acctSummary);
}

Посмотреть

<form  name= "SummaryForm" method="post" >
    <div class="container">
        <div class="row">
            <div class="col-md-9">
                Date
                <input id="DateQry" type="text" class="datepicker" >style="width:70px" name="requestDate"  >        
            </div>
        </div>
    </div>
</form>

частичный

@Html.Partial("_SummaryList", @Model)

Javascript

$('.datepicker').on('change', function (e) {
    $.post('AcctSummary/GetSummaryByDate', {'string':e.date});
});
Автор: FerSher Источник Размещён: 22.08.2016 08:51

Ответы (2)


0 плюса

2067 Репутация автора

  1. Установите тип ввода на дату (в настоящее время вы установили его на текст)
  2. Передайте свойство 'value' (e.value) своему контроллеру
Автор: Sparrow Размещён: 22.08.2016 09:25

0 плюса

155080 Репутация автора

Убедитесь, что вы отправляете значение даты с тем же именем параметра, что и у вашего имени параметра метода действия. Также вы можете использовать, $(this).val()чтобы получить текущее значение ввода.

Ваше имя параметра метода действия requestDate. Так что давайте использовать то же самое, когда мы отправляем данные.

$('.datepicker').datepicker();  //enable date picker

$('.datepicker').on('change', function (e) {
  $.post('AcctSummary/GetSummaryByDate', { requestDate : $(this).val()},function(res){
      // do something with the response
      console.log(res);
  });
});

Вы также можете рассмотреть возможность использования Url.Actionвспомогательного метода html для создания правильного относительного URL-адреса для метода действия вместо его жесткого кодирования.

Так что, по вашему мнению,

<script>
  var summaryUrl = "@Url.Action("GetSummaryByDate","AcctSummary")";
  // use this in your following js code
</script>

Вот подробный пост о передаче этих URL, сгенерированных вспомогательными методами html, в ваш код javascript.

Автор: Shyju Размещён: 22.08.2016 09:40
Вопросы из категории :
32x32