仅继承母版页中的javascript代码

时间:2011-02-24 18:09:41

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

所以我的母版页上有一个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定义,而无需从母版页派生?

2 个答案:

答案 0 :(得分:0)

您可以创建包含此UserControl的{​​{1}},或将<script>抽象为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("~/") %>";

答案 1 :(得分:0)

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

MasterPage1 - &gt;只是javascript

MasterPage2 - &gt;包含你的其他东西,并有MasterPage1作为它的主人

如果您只是想要javascript那么用户MasterPage1,用于其他所有用户MasterPage2。