【发布时间】:2012-06-13 01:43:13
【问题描述】:
我正准备更新一个网站,并且正在考虑使用 oocss。我知道关于 oocss 有很多不同的意见,但到目前为止,它似乎对我的项目来说是一个不错的选择。我唯一不喜欢的是在 HTML 中使用标签来设置复杂模块的样式。 oocss 文档说使用某种脚本来插入这些标签,使它们在不再需要时更容易删除,但它没有详细说明如何执行此操作。如果有人可以向我指出解决方案或有关如何实现此功能的更多信息,我将不胜感激。我的网站是用 c# 中的 asp 编写的,我将使用 razor 模板。如果可能的话,我还想实现这个服务器端,而不是使用 java 脚本。谢谢。
这是一个复杂模块的 html 示例:
<div class="mod complex">
<b class="top"><b class="tl"></b><b class="tr"></b></b>
<div class="inner">
<div class="bd">
<p>Lorem ipsum.</p>
</div>
</div>
<b class="bottom"><b class="bl"></b><b class="br"></b></b>
感谢 Mark,我四处寻找一些 html 帮助程序示例,发现 this post.
我稍微修改了代码,所以我的助手看起来像:
public class Complex : IDisposable
{
private readonly ViewContext _viewContext;
private bool _disposed = false;
public Complex(ViewContext viewContext)
{
_viewContext = viewContext;
}
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposing)
{
if (!_disposed)
{
_disposed = true;
_viewContext.Writer.Write(
@"</div>
<b class=""bottom""><b class=""bl""></b><b class=""br""></b></b>
</div>"
);
}
}
}
public static class HtmlExtensions
{
public static Complex Complex(this HtmlHelper htmlHelper)
{
htmlHelper.ViewContext.Writer.Write(
@"<div class=""mod complex"">
<b class=""top""><b class=""tl""></b><b class=""tr""></b></b>
<div class=""inner"">"
);
return new Complex(htmlHelper.ViewContext);
}
}
然后在我看来,我包括:
@using (Html.Complex())
{
<div class="bd">
<p>Lorem ipsum.</p>
</div>
}
但是现在有没有办法在视图中包含一个 css 类,以便将它放入第一个 div 的类中?如果这是一个愚蠢的问题,我很抱歉,但我对 C# 和 MVC 很陌生。这是我到目前为止所得到的:
我把静态类 html.extensions 改成这样:
public static class HtmlExtensions
{
public static Flow Flow(this HtmlHelper htmlHelper, string classname)
{
htmlHelper.ViewContext.Writer.Write(@"<div class="" " + classname + @"mod complex flow"">
<b class=""top""><b class=""tl""></b><b class=""tr""></b></b>
<div class=""inner"">"
);
return new Flow(htmlHelper.ViewContext);
}
}
我认为这是:
@using (Html.Flow("bgtest"))
{
<div class="bd">
<div style="height:442px; width:980px; background-color: grey;"></div>
</div>
}
我收到此错误:CS1501:方法 'Flow' 没有重载需要 0 个参数。
【问题讨论】:
标签: c# asp.net-mvc-3 razor server-side-scripting oocss