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