2016-02-05 72 views
-1

我有兩個文件,如果頁面上沒有特定的獲取請求,我只想包含這兩個文件。在自定義主頁面上運行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唯一途徑...

有什麼辦法來運行這個或類似的功能,將被允許?

回答

2

我在上面的場景中提出了一個解決方案,你不需要在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) 
} 
相關問題