看起来.NET社区一般都没有选择CSS编译器.在搜索Google时,我发现任何与远程相关的内容都没有.
有没有人使用ASP.NET MVC想出一个方案来更智能地生成他们的CSS?我希望能够通过Razor运行我的CSS,或者为了SASS来移植或者你有什么.也许我手上有一个新的项目:)
Dar*_*rov 47
我希望能够通过Razor运行我的CSS
什么阻止你?
public class CssViewResult : PartialViewResult
{
public override void ExecuteResult(ControllerContext context)
{
context.HttpContext.Response.ContentType = "text/css";
base.ExecuteResult(context);
}
}
public class HomeController : Controller
{
public ActionResult Index()
{
return new CssViewResult();
}
}
Run Code Online (Sandbox Code Playgroud)
并在~/Views/Home/Index.cshtml:
@{
var color = "White";
if (DateTime.Now.Hour > 18 || DateTime.Now.Hour < 8)
{
color = "Black";
}
}
.foo {
color: @color;
}
Run Code Online (Sandbox Code Playgroud)
现在剩下的就是包括它:
<link href="@Url.Action("index")" rel="stylesheet" type="text/css" />
Run Code Online (Sandbox Code Playgroud)
您还可以将模板强类型化为视图模型,写循环,ifs,包含,...
对@ darin-dimitrov的回答略有修改.这增加了将模型传递给CssView的能力:
public class CssViewResult : PartialViewResult
{
public CssViewResult()
{
}
public CssViewResult(object model)
{
if (model != null)
{
ViewData.Model = model;
}
}
public override void ExecuteResult(ControllerContext context)
{
context.HttpContext.Response.ContentType = "text/css";
base.ExecuteResult(context);
}
}
Run Code Online (Sandbox Code Playgroud)
然后你只需使用它:
return new CssViewResult(model);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17622 次 |
| 最近记录: |