所以我的主页上有一个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定义包含在另一个视图中而无需从母版页派生?
最佳答案
您可以创建包含此UserControl
的<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("~/") %>";
那么您的函数可以始终使用此变量并附加所需的内容:
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);
}