#jquery #asp.net-mvc-3 #jquery-ui
#jquery #asp.net-mvc-3 #jquery-пользовательский интерфейс
Вопрос:
Я работаю над 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();
}
Ошибка возникает, когда я редактирую запись и делаю поле имени пустым и пытаюсь сохранить его. [Required]
В viewmodel есть аннотация к свойству, и поэтому я получаю сообщение об ошибке проверки. Однако, если я затем попытаюсь щелкнуть по одному из двух моих изменений даты и времени, я получаю сообщение «слишком много рекурсии» или ошибку stackoverflow. Это происходит как в FF, так и в IE8. Ошибка находится в jquery-ui-datetimepicker-addon.js
файле, который я использую, который я получил из http://trentrichardson.com/2010/04/19/timepicker-addon-for-jquery-ui-datepicker , по крайней мере, именно к этому меня приводит инструмент отладки.
Если я просто использую jquery datepicker (без компонента времени), я вообще не получаю эту ошибку.
Я предполагаю, что в datetimepicker может быть ошибка, но поскольку я новичок в jquery и ASP.NET MVC, есть большая вероятность, что это просто я что-то делаю неправильно.
Есть идеи?
Комментарии:
1.
timeFormat: 'hh:mm;ss TT'
быстрый вопрос,;
он должен быть там?2. @ric_bfa ввел его с ошибкой — должно быть двоеточие, исправлено. Спасибо
Ответ №1:
Итак, похоже, что проблема в том, что в моем частичном представлении есть эта строка:
<script src="@Url.Content("~/scripts/jquery-ui-datetimepicker-addon.js")" type="text/javascript"></script
и если я переместил это в _Layout.cshtml
вместо этого, на него не ссылаются дважды и проблема «слишком много рекурсии» / stackoverflow.