none
如何从部分视图向布局页指定位置加入js?

    问题

  • 如分布视图带有script标记,要把这些集中写入布局页的底部,该如何向布局页写入?
    以前的webform我是这样写的:     
       public static void Iptjs(Control ctl, string src)
                {
                    LiteralControl l = new LiteralControl();
                    l.Text = "<script src='" + src + "'></script>";
                    ctl.Page.Master.Master.FindControl("body").FindControl("IptJs").Controls.Add(l);
                }
    目前部分视图top.cshtml中有一段js:

     function dlg(path, tit) {
            var bu = "http://localhost:60090/";
            C.EXHR(function (o) {
                //注册、登录公用js:
                var cj = C.Ce("script");
                cj.src = "/js/rl.js?Math.random()";
                C.Bd().appendChild(cj);
     
                dw.innerHTML = dw.ct + o;
                dw.firstChild.firstChild.nodeValue = tit;
                exjs(o);
            }, "GET", bu + path)
            Dialog("dbg", dw);

        }

    dlg();

    而布局f.cslhtml中有两个用于处理js的section的节点

    @Html.Partial("~/Views/partial/top.cshtml")
    ......
    @RenderSection("fimpJs", false)//分布页的js将来需要放在这里
    <script>
    @RenderSection("runJs", false)//分布页的js将来需要放在这里
    </script>
    如何将top.cshtml中的js段加入到@section runJs里?

    2017年4月28日 4:11

全部回复

  • 你好,

    在布局页中你可以使用RenderSection方法去定义section:

        <script src="~/Scripts/jquery-1.10.2.min.js"></script>
        <script src="~/Scripts/bootstrap.min.js"></script>
        @RenderSection("fimpJs", false)

    在视图页中:

    @Html.Partial("~/Views/PartialView1.cshtml")
    @section fimpJs{
        <script type="text/javascript">
            function MyFunction() {
                alert("AA");
                return false;
            }
        </script>
    }
    注意,以上JavaScript脚本不能添加到局部视图,因为局部视图没有使用布局页。

    2017年4月28日 7:39
  • 我们这个top是一个组件,有很多个组件的,比如top1、top2、top3.......而大部分组件都有自己特有的js,所以js在部分视图中是难以改变的
    • 已编辑 webs007 2017年4月28日 8:51
    2017年4月28日 8:17
  • Hi,

    因为你的问题是关于ASP.NET问题,你可以到ASP.NET 论坛发出你的帖子,将会有专业的人,为你解答。

    我将要把这个帖子移到一般讨论论坛。

    Best Regards,

    Hart


    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2017年5月5日 9:35
    版主