如何避免Sitefinity中的冲突MVC小部件(css和jquery)

时间:2015-08-31 10:43:00

标签: asp.net-mvc widget sitefinity

我已开始开发到sitefinity CMS,并且在将样式和Jquery / javascript应用于不同窗口小部件时遇到了一些冲突。 我希望每个小部件都有自己的Style和它自己的Jquery和Javascrip函数。

我正在发生的事情是,我在一个小部件中将preventDefautls应用于其所有文本框,以及其他小部件'文本框也受到影响。 我也对小部件应用不同的css,也存在冲突。

也许好的做法是对所有小部件使用相同的CSS。 但是当我想在其所有文本框中应用preventDefaults之类的东西时,我的所有小部件都会受到影响。

我该如何避免这种情况?

开发ASP.NET MVC Widgets 这是我的小部件结构

<script src="@Url.Content("~/Scripts/jquery-1.11.3.js")"></script>                                       
<link rel="stylesheet" href="~/Content/bootstrap.css" />                                                     
<link rel="stylesheet" href="http://cdn.kendostatic.com/2015.2.805/styles/kendo.common-bootstrap.min.css" /> 
<link rel="stylesheet" href="http://cdn.kendostatic.com/2015.2.805/styles/kendo.bootstrap.min.css" />        

<style>
//addicional style
<style>


<script>
//scripts...
</script>


<div> 
Content...
</div>

有关良好做法,文档或代码的一些建议会很棒。

1 个答案:

答案 0 :(得分:0)

对于样式,我通常用自定义小部件包装一个特定的类,例如“imageGallery”,然后在我的主要css(我使用grunt / compass管理)中,我确保明确地定位该类。这样,我可以进行全局样式设置,但也可以通过调整来设置特定样式的小部件。 grunt / compass的好处在于,你可以为每个小部件的样式分别使用一个物理css文件,但它们都捆绑在一起进行发布。

对于js,我通常从SF类型继承,例如“SimpleScriptView”,然后覆盖GetScriptDescriptors(),GetScriptReferences()等方法。这允许脚本与ashx捆绑在一起,并减少重复的风险等。首先遵循javascript类的Sitefinity布局可能会有点复杂,但是你将与框架保持一致,因此,您甚至可以在需要时反编译SF以获得更多示例。