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

Run C# code on custom master page

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

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

<% if(Request.QueryString["edit"]!=null){ %>

    <link rel="stylesheet" href="/SiteAssets/SP2013Accordion/SP2013Accordion.css" />
    <script src="/SiteAssets/SP2013Accordion/SP2013Accordion.js" type="text/javascript"></script>

<% } %>

但是我得到这个错误:

Error processing /sites/develop_apps/phiterpub/_catalogs/masterpage/newseattle.master. Code blocks are not allowed in this file.

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

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

有什么方法可以运行允许使用此功能或类似功能吗?

我针对上述场景提出了一个解决方案,您无需在 master 上编写内联 C# 代码page.Also在这种情况下这样做对于实现此要求并不优雅。

What you can do is get the query string value "edit" by using javascript and then conditionally load your css and your js files.

注意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)
 }