[英]Asp.net MVC - load JavaScript files
在我的asp.net MVC网站上,我有一个布局文件,我在其中加载我的JavaScript文件:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>@ViewBag.Title - My title</title>
@Styles.Render("~/Content/css")
</head>
<body>
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jquerymobile")
@RenderSection("scripts", required: false)
<div data-role="page" data-theme="a" id="home">
<div id="divPartialView">
@RenderBody()
</div>
</div>
</body>
然后,我有一个使用布局的主页面:
@{
Layout = "~/Views/Shared/_LayoutBase.cshtml";
}
在这个页面中,我通过局部视图替换我的div的内容:
$.ajax({
url: '@Url.Action("MyPage", "Home")',
data: { myVariable: "variable"},
cache: false,
type: "POST",
dataType: "html",
success: function (data) {
$("#divPartialView").html(data);
},
error: function () {
alert("error");
}
});
我的部分观点:
<div data-role="header">
</div>
<div data-role="content" id="MainContent">
</div>
<div data-role="footer" data-position="fixed">
</div>
问题是在这个局部视图中,我必须再次加载Jquery移动脚本,否则它不起作用...(页眉和页脚无法正确显示)
你知道为什么吗?
您有一个文件名BundleConfig
,此文件显示您加载的脚本。 该文件应包含:
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include("~/Scripts/jquery.validate*"));
之后检查您的布局,您的文件必须包含:
@Scripts.Render("~/bundles/jqueryval")
祝你有美好的一天。
你应该使用@section Scripts{}
<body>
...
//should bottom of body tag.
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jquerymobile")
@RenderSection("scripts", required: false)
</body>
在局部视图中,在“脚本”部分下编写所有代码
@section Scripts {
$.ajax({
....
});
}
我会在加载整个页面之后放入javascript引用,如:
<div data-role="page" data-theme="a" id="home">
<div id="divPartialView">
@RenderBody()
</div>
</div>
...
<!-- finally here -->
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jquerymobile")
@RenderSection("scripts", required: false)
</body>
</html>
在将新的html(这种情况下是部分的)附加到页面后,您必须附加相关脚本。 我在猜猜如下:
...
success: function (data) {
$("#divPartialView").html(data);
$("#divPartialView").append('<script src="jquery.mobile.js" type="text/javascript"></script>');
},
...
还要确保此脚本获取所有必备脚本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.