在自定义主页面上运行C#代码

问题描述:

我有两个文件,如果页面上没有特定的获取请求,我只想包含这两个文件。在自定义主页面上运行C#代码

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

<% 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 page上写内联的c#代码。在这种情况下,做这件事情对于达到这个要求并不是很好。

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