2013-10-14 108 views
1

我想在我的CSS样式块有一定的灵活性,所以我决定要注入一些服务器端代码,F.E.ASP.NET MVC剃刀和CSS块

#defaultGameContainer { 
      position: relative; 
      width: @(SiteConfig.Instance.Game.Width + "px"); 
      height: 600px; 
      top: 100px; 
      left: 50%; 
      margin-left: -480px; 
     } 

,但它似乎没有工作,我有这样的一个VS错误“意外的字符序列......” 我们是否限制使用剃刀语法在CSS? 谢谢。

回答

1

我相信你可以用更少的CSS的.NET http://www.dotlesscss.org/

+0

谢谢你的回应。我认为连接整个库以实现如此简单的任务是很小的开销,因为我只有简单的css块,不打算稍后增长。 – igorGIS

+0

@igorGIS赫姆..然后你可以使用Ajax以检索 “SiteConfig.Instance.Game.Width”,并使用jquery您#defaultGameContainer分配给它:$( “#defaultGameContainer”)的CSS( “宽度”,ajaxResult) –

+0

声音像一个解决方案。非常奇怪,正如我记得我们可以在页面的任何部分,包括css bloks,在asp.net 4中使用<%= %>语法。为什么我们不能在MVC – igorGIS

3

CSS/JS文件不受MVC剃刀意见引擎解析

您可以创建CssController(确保你没有css文件夹中项目目录),它返回纯文本

控制器:

public class CssController : Controller 
{ 
    [OutputCache(Duration = 6000, VaryByParam = "l")] 
    public ActionResult generatecss() 
    { 
     return View("generatecss"); 
    } 
} 

视图:generatecss.cshtml

@{ Layout = ""; } 
#defaultGameContainer { 
     position: relative; 
     width: @(SiteConfig.Instance.Game.Width + "px"); 
     height: 600px; 
     top: 100px; 
     left: 50%; 
     margin-left: -480px; 
    } 

把它放在布局样式

<link href="~/Css/generatecss" rel="stylesheet"/> 
+0

您好,您需要在控制器中返回正确的类型/ mime类型 – transformer

0

感谢你们!你所有的建议都很好! 在试验结束时,我发现它即使对那些令人讨厌的VS警告也起作用。 因此,我们可以在主_layout.cshtml<style>...</style>块中将c#与css混合使用,并发出这些警告。

3

其实,你可以按照以下说明为特定.cshtml查看添加自定义CSS块:

首先,定义在.cshtml查看您的自定义CSS块

@section CustomCSS{ 
<style> 
    #floorsList > tbody > tr > td { 
     vertical-align: middle 
    } 
</style> 
} 

然后,你需要嵌入此CustomCSS部分 in _layout.cshtml file:

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8" /> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <title>@ViewBag.Title - Your Application</title> 
    @Styles.Render("~/Content/css") 
    @Scripts.Render("~/bundles/modernizr") 
    @RenderSection("Styles", false) 
    <!--Consider the following line --> 
    @RenderSection("CustomCSS", required: false) 
</head> 
<body> 
</body> 
</html>