【问题标题】:Inherit just the javascript code from a master page仅从母版页继承 javascript 代码
【发布时间】:2011-02-24 18:09:40
【问题描述】:

所以我的母版页上有一个 Javascript 函数。当我从派生自该母版页的页面中调用它时,它工作正常,但是,在没有的页面上,它显然不起作用。我也不能把它放在另一个 .js 文件中,因为它使用了一些嵌入的 c# 代码,所以它必须在 <script> 标记内。

这是函数:

function GridExport(viewUrl, fileName)
    {
        var actionUrl = "<%= System.Web.VirtualPathUtility.ToAbsolute("~/mvc/Indications.cfc/ExportToExcel")%>";
        var guid = GetGUIDValue();
        window.open((actionUrl + "?id=" + guid + "&viewName=" + viewUrl + "&fileName="  + fileName), null, null, null);
    }

有没有一种方法可以将母版页中的 Javascript 定义包含在另一个视图中,而无需从母版页派生?

【问题讨论】:

    标签: javascript asp.net-mvc-2 master-pages


    【解决方案1】:

    您可以创建一个包含此&lt;script&gt;UserControl 或将actionUrl 抽象为GridExport 函数的参数

    function GridExport(viewUrl, fileName, actionUrl)
    {
        var guid = GetGUIDValue();
        window.open((actionUrl + "?id=" + guid + "&viewName=" + viewUrl + "&fileName="  + fileName), null, null, null);
    }
    

    避免此路径问题的另一种方便方法是使用全局变量来定义站点的根:

    var root = "<%= System.Web.VirtualPathUtility.ToAbsolute("~/") %>";
    

    那么你的函数总是可以使用这个变量并附加它需要的:

    function GridExport(viewUrl, fileName)
    {
        var actionUrl = root + "mvc/Indications.cfc/ExportToExcel";
        var guid = GetGUIDValue();
        window.open((actionUrl + "?id=" + guid + "&viewName=" + viewUrl + "&fileName="  + fileName), null, null, null);
    }
    

    【讨论】:

      【解决方案2】:

      母版页可以相互嵌入。为什么不只制作一个只包含您的 javascript 的母版页。然后制作另一个以 javascript 母版页为母版的母版页。创建新页面时,您可以选择使用哪一个。

      MasterPage1 -> 只是 javascript

      MasterPage2 -> 包含您的其他内容并以 MasterPage1 作为其主页面

      如果您只想要 javascript,则用户 MasterPage1,其他一切用户 MasterPage2。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多