在自定义母版页上运行 C# 代码

本文关键字:代码 运行 自定义 母版页 | 更新日期: 2023-09-27 18:33:25

我有两个文件,如果页面上没有特定的 get 请求,我只想包含它们。

这是我在自定义母版页上使用的代码:

<% if(Request.QueryString["edit"]!=null){ %>
    <link rel="stylesheet" href="/SiteAssets/SP2013Accordion/SP2013Accordion.css" />
    <script src="/SiteAssets/SP2013Accordion/SP2013Accordion.js" type="text/javascript"></script>
<% } %>

但是我收到此错误:

处理/sites/develop_apps/phiterpub/_catalogs/masterpage/newseattle.master 时出错。此文件中不允许使用代码块。

所以,显然我无法在此页面上运行 C# 代码。

我知道之前有人问过这个问题,但也许有一个简单的 HTML 方法可以做到这一点......

有没有办法运行这个或允许的类似功能?

在自定义母版页上运行 C# 代码

我提出了一个关于上述方案的解决方案,您不需要在母版页上编写内联 C# 代码。在这种情况下这样做对于满足此要求也不优雅。

你可以做的是使用 javascript 获取查询字符串值"edit",然后有条件地加载你的 css 和 js 文件。

请注意getQueryStringParameterByName这是您必须编写以提取查询字符串值的方法。

var edit = getQueryStringParameterByName('edit'); 
if(edit != '')
{
  loadcssFile('/SiteAssets/SP2013Accordion/SP2013Accordion.css');
  loadjsFile('/SiteAssets/SP2013Accordion/SP2013Accordion.css');
}

加载CSS文件的方法

 function loadcssFile(cssfile){
 loadcss = document.createElement('link')    
 loadcss.setAttribute("rel", "stylesheet")
 loadcss.setAttribute("type", "text/css")    
 loadcss.setAttribute("href", cssfile) 
 document.getElementsByTagName("head")[0].appendChild(loadcss)
 }

和加载JS的方法

 function loadjsFile(scriptFile){     
 loadScript = document.createElement('SCRIPT')
 loadScript.setAttribute("charset", "utf-8")
 loadScript.setAttribute("type", "text/javascript")    
 loadScript.setAttribute("src", scriptFile)
 document.getElementsByTagName("head")[0].appendChild(loadScript)
 }