在自定义母版页上运行 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# 代码。在这种情况下这样做对于满足此要求也不优雅。
你可以做的是使用 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)
}