jQuery datetimepicker слишком много ошибок рекурсии - PullRequest
1 голос
/ 31 октября 2011

Я работаю над приложением ASP.NET MVC 3 и у меня возникли некоторые проблемы. У меня есть PartialView, который имеет кнопку отправки. Код выглядит примерно так:

@using (Html.BeginForm("Edit", "IceCream", FormMethod.Post, new { id = "editicecreamform" + @Model.IceCreamID }))
{
   @Html.EditorFor(model => model.Name)
   @Html.ValidationMessageFor(model => model.Name)
   @Html.TextBoxFor(model => model.FirstDateTime, new { @class = "mydatetime" })
   @Html.ValidationMessageFor(model => model.FirstDateTime)
   @Html.TextBoxFor(model => model.SecondDateTime, new { @class = "mydatetime" })
   @Html.ValidationMessageFor(model => model.FirstDateTime)
   <input type="submit" value="Save" data-icecream="@Model" />
}

и часть скрипта выглядит так:

<script type="text/javascript">
   $('.mydatetime').datetimepicker({
      showSecond: true,
      timeFormat: 'hh:mm:ss TT', 
      hourGrid: 4,
      minuteGrid: 10
   });

   $(document).ready(function () {
      var options = {
         target: "#icecreamdetails@(Model.IceCreamID)",
         url: '@Url.Action("Edit", "IceCream")',
         success: UpdateGrid // not germane to discussion
      };

      $("#editicecreamform@(Model.IceCreamID)").submit(function () {
         $(this).ajaxSubmit(options);
         return false;
      });
   });
</script>

Мое действие редактирования выглядит примерно так:

[HttpPost]
public PartialViewResult Edit(IceCreamCreateEditViewModel viewModel)
{
   if (ModelState.IsValid)
   {
   }
   return PartialView();
}

Ошибка возникает, когда я редактирую запись, оставляю поле Имя пустым и пытаюсь сохранить его. В свойстве viewmodel есть аннотация [Required], поэтому я получаю сообщение об ошибке проверки. Однако, если я попытаюсь щелкнуть по одному из двух моих изменений даты и времени, я получу ошибку «слишком много рекурсии» или stackoverflow . Это происходит в FF, а также IE8. Ошибка в используемом мной файле jquery-ui-datetimepicker-addon.js, который я получил от http://trentrichardson.com/2010/04/19/timepicker-addon-for-jquery-ui-datepicker, по крайней мере, куда меня ведет инструмент отладки.

Если я просто использую указатель даты jquery (без компонента времени), я вообще не получу эту ошибку.

Полагаю, что в datetimepicker может быть ошибка, но, поскольку я новичок в jquery и ASP.NET MVC, есть большая вероятность, что я просто что-то не так делаю.

Есть идеи?

1 Ответ

0 голосов
/ 01 ноября 2011

Итак, похоже, что проблема в том, что мое частичное представление имеет следующую строку:

<script src="@Url.Content("~/scripts/jquery-ui-datetimepicker-addon.js")" type="text/javascript"></script

, и если я переместлю это в _Layout.cshtml вместо этого, на него не будут ссылаться дважды, и "слишком много рекурсии "/ проблема с переполнением стека.

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