Javascript DatePicker提供的对象不为';t支持属性或方法';日期选择器';全视图但非模态形式
如果标题被截断,我将收到以下错误: 0x800a01b6-JavaScript运行时错误:对象不支持属性或方法“datepicker” datepicker在作为PartialView返回的模式表单中工作正常,但当试图在模式/PartialView之外的完整视图中使用它时,它会抛出该错误 Bundle.Config:Javascript DatePicker提供的对象不为';t支持属性或方法';日期选择器';全视图但非模态形式,javascript,jquery,jquery-ui,datepicker,jquery-ui-datepicker,Javascript,Jquery,Jquery Ui,Datepicker,Jquery Ui Datepicker,如果标题被截断,我将收到以下错误: 0x800a01b6-JavaScript运行时错误:对象不支持属性或方法“datepicker” datepicker在作为PartialView返回的模式表单中工作正常,但当试图在模式/PartialView之外的完整视图中使用它时,它会抛出该错误 Bundle.Config: public static void RegisterBundles(BundleCollection bundles) { bundles.Add(new
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-2.2.0.js",
"~/Scripts/bootstrap.js",
"~/Scripts/bootstrap-datepicker.js")
);
bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include(
"~/Scripts/jquery-ui-1.11.4.js",
"~/Scripts/bootstrap-datepicker.js")
);
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.validate*",
"~/Scripts/jquery.unobtrusive*"
));
bundles.Add(new StyleBundle("~/bundles/css").Include(
"~/Content/bootstrap.css",
"~/Content/bootstrap-theme*",
"~/Content/jquery-ui.css",
"~/Content/jquery-ui.structre.css",
"~/Content/jquery-ui.theme.css"
));
bundles.Add(new StyleBundle("~/bundles/themes/base/css").Include(
"~/Content/themes/*.css"
));
bundles.Add(new StyleBundle("~/bundles/datepickers/css").Include(
"~/Content/bootstrap-datepicker.css",
"~/Content/themes/base/datepicker.css"
));
}
管理布局(表单应位于其中):
@标题-拳击手小狗管理员
@*
*@
@style.Render(“~/bundles/css”)
@style.Render(“~/bundles/themes/base/css”)
@style.Render(“~/bundles/datepickers/css”)
@RenderSection(“样式”,必填项:false)
@Scripts.Render(“~/bundles/jquery”)
@Scripts.Render(“~/bundles/jqueryval”)
@Scripts.Render(“~/bundles/jqueryui”)
@RenderSection(“脚本”,必需:false)
主布局(保持事物相对一致)
@标题:拳击手小狗
@**@
@style.Render(“~/bundles/css”)
@style.Render(“~/bundles/themes/base/css”)
@style.Render(“~/bundles/datepickers/css”)
@RenderSection(“样式”,必填项:false)
@Scripts.Render(“~/bundles/jquery”)
@Scripts.Render(“~/bundles/jqueryval”)
@Scripts.Render(“~/bundles/jqueryui”)
@RenderSection(“脚本”,必需:false)
模态局部视图:
@model BoxerPuppyDogs.Models.ManageLitters.LitterViewModel
<script src="~/Scripts/jquery-ui-1.11.4.min.js"></script>
@Html.BeginForm("SaveNewLitter", "ManageLitter", FormMethod.Post, new { @id = "newLitterForm" })
{
<div class="modal fade" id="NewLitterDialog" tabindex="-1" role="dialog" aria-labelledby="RemoveModalLabel" aria-hidden="true" data-backdrop="static" data-keyboard="false">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Add Litter</h4>
</div>
<div class="modal-body">
<div id="DialogPlaceHolder">
@Html.Partial("_NewLitterFormFields", Model)
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
}
@model BoxerPuppyDogs.Models.ManageLitters.LitterViewModel
@BeginForm(“savenewlitt”,“managelit”,FormMethod.Post,new{@id=“newLitterForm”})
{
&时代;
添加垃圾
@Html.Partial(“\u NewLitterFormFields”,Model)
接近
}
全视图版本:
@model BoxerPuppyDogs.Models.ManageLitters.LitterViewModel
@{
Layout = "~/Views/Shared/_AdminLayout.cshtml";
ViewBag.Title = "Add Litter";
}
<script src="~/Scripts/jquery-ui-1.11.4.min.js"></script>
<div class="container">
<div class="row">
@Html.BeginForm("SaveNewLitter", "ManageLitter", FormMethod.Post, new { @id = "newLitterForm" })
{
@Html.Partial("_NewLitterFormFields", Model)
</div>
<div class="row">
<button type="button" class="btn btn-default">Cancel</button>
</div>
}
</div>
@model BoxerPuppyDogs.Models.ManageLitters.LitterViewModel
@{
Layout=“~/Views/Shared/_AdminLayout.cshtml”;
ViewBag.Title=“添加垃圾”;
}
@BeginForm(“savenewlitt”,“managelit”,FormMethod.Post,new{@id=“newLitterForm”})
{
@Html.Partial(“\u NewLitterFormFields”,Model)
取消
}
模态视图和全视图都称此为局部视图:
@model BoxerPuppyDogs.Models.ManageLitters.LitterViewModel
<script type="text/javascript">
$(document).ready(function () {
$("#LitterDOB").datepicker({
changeMonth: true,
changeYear: true,
dateFormat: 'mm/dd/yy',
gotoCurrent: true
});
});
</script>
<div class="row">
@Html.LabelFor(m => m.LitterDOB)
@Html.TextBoxFor(m => m.LitterDOB, String.Format("{0:MM/dd/yyyy}", Model.LitterDOB), new { id = "LitterDOB", @class = "datepicker" })
</div>
@model BoxerPuppyDogs.Models.ManageLitters.LitterViewModel
$(文档).ready(函数(){
$(“#LitterDOB”)。日期选择器({
变化月:对,
变化年:是的,
日期格式:“mm/dd/yy”,
gotoCurrent:对
});
});
@LabelFor(m=>m.LitterDOB)
@Html.TextBoxFor(m=>m.LitterDOB,String.Format(“{0:MM/dd/yyyy}”,Model.LitterDOB),new{id=“LitterDOB”,@class=“datepicker”})
我最初尝试使用EditorFor并为此创建一个自定义模板,但这被证明是令人讨厌的,我只需要在一个控件上使用它,所以在这一点上没有必要
模态和调用分部的视图之间肯定有一些区别,但我看不到它。问题是我
@RenderSection("scripts", required: false)
在布局的标题部分,而不是正文部分的底部。您提供了很多代码。你能把它缩小到相关的部分吗?或者缩小到问题的范围,或者更好地使用一个指向jsfiddle.net的链接。问题是我不知道问题是什么,所以不能进一步缩小范围。我知道两件事:为了使模式工作,我必须包括``或者日期选择器不能在模式上工作。在完整视图中,即使包含脚本,它仍然不起作用。这很奇怪,因为我在渲染包中包含了脚本(.js vs.min.js)。所以,我很惊讶它在模态上需要它。在这两种情况下都需要jquery和jQueryUI。你错过了这两个错误
@model BoxerPuppyDogs.Models.ManageLitters.LitterViewModel
<script type="text/javascript">
$(document).ready(function () {
$("#LitterDOB").datepicker({
changeMonth: true,
changeYear: true,
dateFormat: 'mm/dd/yy',
gotoCurrent: true
});
});
</script>
<div class="row">
@Html.LabelFor(m => m.LitterDOB)
@Html.TextBoxFor(m => m.LitterDOB, String.Format("{0:MM/dd/yyyy}", Model.LitterDOB), new { id = "LitterDOB", @class = "datepicker" })
</div>
@RenderSection("scripts", required: false)