繁体   English   中英

Asp.net MVC - 加载JavaScript文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM