在ASP.Net MVC UserControls中处理CSS的策略

时间:2008-12-05 22:06:16

标签: asp.net-mvc css

我刚刚开始使用ASP.Net MVC框架,今天我创建了一个使用CSS的简单UserControl。由于CSS是在一个单独的文件中声明并包含在调用UserControl的View中,而不是在UserControl本身中,因此Visual Studio找不到UserControl中使用的任何CSS类。这让我想到了在UserControls中处理CSS最合适的方式。

如果在不同的上下文中使用相同的控件并且需要能够适应调用View的样式,则在使用UserControl的View中声明CSS会提供更大的灵活性。

让UserControl提供自己的CSS将导致更清晰的分离,并且视图不需要知道关于UserControl生成的HTML / CSS的任何信息,但代价是控件的固定外观。 / p>

由于我对这个框架完全陌生,我猜这些人已经对此有了一些好的结论。

那么,你是否会让UserControl处理自己的CSS,它是否依赖于调用View中声明的CSS,还是有另一种更好的解决方案?

3 个答案:

答案 0 :(得分:1)

它应该始终在您的全局CSS中。如果你把它传递给设计师,你不想要解释哪个控件定义了x样式等等。

答案 1 :(得分:1)

如果你看一下像Yahoo UI这样的可移植工具包,它会记录每个控件使用的类,然后为整个工具包提供一个skin文件。通过交换单个皮肤文件,您可以更改整个站点的外观。

我认为99.9%的时间你想要自定义皮肤你的控件,而不是预定义的外观和感觉。

作为示例,here是用于Yahoo的TabView控件的CSS定义

答案 2 :(得分:0)

快速点......您的视图可以识别HTML ...这就是它们的用途。我建议(如果你想变得很酷),就是在你的“MVC UserControl”中添加一个指定类名的参数。例如:

<%= MyHelperClass.Marquee("This text will scroll!!!", "important-text") %>

我当然假装“重要文本”是我要添加到控件中的类名。

我假设当你说“UserControl”时,你指的是上面那个链接中的一个例子。