Sitecore 如何防止营销人员的web表单注入自己的jquery-ui.custom.Default.css

Sitecore 如何防止营销人员的web表单注入自己的jquery-ui.custom.Default.css,sitecore,web-forms-for-marketers,Sitecore,Web Forms For Marketers,我最近在一个项目中使用了它,我注意到它注入了: <link href="/sitecore%20modules/shell/Web%20Forms%20for%20Marketers/themes/colors//jquery-ui.custom.Default.css" rel="stylesheet" type="text/css" /> 这意味着我可以检查所有的头控件并隐藏包含“jqueryui.custom.Default.css”,但这仍然感觉像是一个肮脏肮脏的黑客(事实

我最近在一个项目中使用了它,我注意到它注入了:

<link href="/sitecore%20modules/shell/Web%20Forms%20for%20Marketers/themes/colors//jquery-ui.custom.Default.css" rel="stylesheet" type="text/css" />

这意味着我可以检查所有的头控件并隐藏包含
“jqueryui.custom.Default.css”
,但这仍然感觉像是一个肮脏肮脏的黑客(事实就是这样)。在
page.Header.Controls.Add
会引发异常的情况下,它也不会删除链接。

我已经反编译了WFFM,似乎无法配置更改或关闭它。所以,解决这个问题的一种方法是直接编辑这个文件并删除它的内容。它仍将被加载,但不会包含任何CSS

更新

根据您的更新,您还可以尝试以下操作:

Control ctl = WebUtil.FindControlOfType(Sitecore.Context.Page.Page, typeof(TYPE-OF-EXPECTED-CONTROL));

在此处替换
预期控制类型
。从这里,您可以使用它做任何您想做的事情,例如,确定它是否是包含CSS的链接,等等。

事实上,如果文件系统中没有样式表,营销人员的Web表单将不会添加
标记


根本问题是缓存了已删除样式表的副本,并在每次构建时将其添加到web目录中。清理构建并确保清除缓存的TDS文件修复了该问题,而无需添加服务器端代码。

我已经这样做了,但这是一个很好的建议。我一直在使用dotPeek来签出源代码,我发现一个签入
ThemesManager.AddScript
,看起来只有在文件存在时才应该添加它。不幸的是,删除文件似乎无法修复它。重新编译似乎也会把文件带回来,我不确定目前为什么,它可能与TDS有关。
Control ctl = WebUtil.FindControlOfType(Sitecore.Context.Page.Page, typeof(TYPE-OF-EXPECTED-CONTROL));