Произошла ошибка в AJAX, если пользователь выбирает дату - PullRequest
0 голосов
/ 15 февраля 2019

Просмотр:

    <div class="row">
  <div class="col-md-1">
    @Html.LabelFor(model => model.DoingDateTime, new { @class = "control-label" })
  </div>

  <div class="col-md-3">
    @if (TaskOwner == false && ActionName.ToLower() == "edit" )
    {
      @Html.TextBoxFor(model => model.DoingDateTime, new { @class = "form-control text-center", lang = "en", @readonly = "readonly" })// ,@onchange = "setdefaultmaturitydate();"
    }
    else
    {
      @Html.TextBoxFor(model => model.DoingDateTime, new { @class = "form-control text-center datepicker", lang = "en" })
    }
  </div>

  <div class="col-md-2">
    @Html.ValidationMessageFor(model => model.DoingDateTime)
  </div>

  <div class="col-md-1">
    @Html.LabelFor(model => model.ReferencesTo, new { @class = "control-label" })
  </div>

  <div class="col-md-3">
    @if (TaskOwner == false && ActionName.ToLower() == "edit" )
    {
      @Html.TextBoxFor(model => model.CombinatorialReferenceToFullName, new { @class = "form-control", lang = "en", @readonly = "readonly" })
      @Html.HiddenFor(model => model.Task_ReferenceTo)
    }
    else
    {
      if (ActionName.ToLower() == "create")
      {
        @Html.ListBoxFor(model => model.ReferencesTo, (MultiSelectList)(ViewData["ReferenceTolist"]), new { @class = "form-control chosen-select" })
      }
      else
      {
        @Html.DropDownListFor(model => model.Task_ReferenceTo, (SelectList)(ViewData["ReferenceTolist"]), new { @class = "form-control chosen-select" })
      }
    }
  </div>
  <div class="col-md-2">
    @Html.ValidationMessageFor(model => model.ReferencesTo)
  </div>
</div>

Контроллер:

    [AllowAnonymous]
public ActionResult UserVacationInDay(List<int> userIds, string vacationDate)
{
  //Code...
  if (vacations.Count() > 0)
  {
    message = "Test";
  }

  return Json(new { Message = message }, JsonRequestBehavior.AllowGet);
}

Ajax:

$("form").submit(function (e) {
            var uids = $('#ReferencesTo').val();
            var vDate = $("#DoingDateTime").text();

            $.ajax({
                url: '@Url.Action("UserVacationInDay", "Vacation")',
                dataType: 'json',
                data: {
                    userIds: uids,
                    vacationDate: vDate
                },
                type: 'post',
                success: function (data) {
                    if (data.Message != "" && data.Message != null) {
                        alert(data.Message);
                    }
                },
                error: function (xhr) {
                    alert('Request Status: ' + xhr.status + ' Status Text: ' + xhr.statusText + ' ' + xhr.responseText);
                }
            });
    });

Когда Ajax запускается, он сначала переходит в раздел ошибок, возвращаетошибка состояния: 0. Затем он переходит к контроллеру, но после возврата в AJAX секция Success не выполняется.

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

Как мне прочитать поле даты, чтобы избежать проблемы?

Ответы [ 2 ]

0 голосов
/ 15 февраля 2019
.

@Html.Kendo () DateTimePicker () Название ( "DoingDateTime") FooterId ( "DoingDateTime") Значение (DateTime.Now) .DateInput () TimeFormat ( "HH: мм: сс").....Культура ("tr-TR"). HtmlAttributes (new {})

ajax

 VData: $("#DoingDateTime").val(),
0 голосов
/ 15 февраля 2019

получить значение формы даты не из текста, например, $ ('# yourdateid'). Val ();может быть, это работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...