我有一个主视图,其主布局包含所有 javascript,即 jQuery DatePicker 控件等。
在这个主视图中,我使用了包含部分视图的 Ajax.BeginForm(.....)。在我的控制器中,如果验证失败,它将返回该部分视图。(Ajax 中的 UpdateTargetId 也已设置为包含该部分视图的部分的 Id。)
我的错误项目符号正确显示。但是我发现在那之后我似乎失去了javascript。例如,我的日历/日期选择器停止工作,它带有一个正常的输入框。
可能是什么原因?
非常感谢!!
这是代码:
我的主视图包含一个 Ajax 表单。里面有2个局部视图。第二个有日期选择器输入。
@using (Ajax.BeginForm("ActionXXX", "ControllerYYY", new AjaxOptions
{
HttpMethod = "POST",
UpdateTargetId = "main"
}))
{
<section id="main" class="....." data-section="....." data-step="">
@Html.Partial("ValidationSummary")
@Html.Partial("SharedPartialView", Model, new ViewDataDictionary {.....})
</section>
}
并且 JS 包含在主文件中。(主视图对此有布局)
<script type="text/javascript">
$('input.date').watermark('dd/mm/yyyy');
$('input.date').datepicker({
dateFormat: "dd/mm/yy",
maxDate: 0,
onClose: function () { $(this).valid(); }
});
$('input.time').watermark('hh:mm');
$('input.time').timeEntry();
</script>
控制器只是:当验证失败时,返回部分视图(“SharedPartialView”)
if (Request.IsAjaxRequest())
return PartialView("SharedPartialView", ciShareModel); //model
这些 datepicker 和 watermark jquery 在页面最初加载时确实有效....