为什么Asp.net MVC团队在Site.Master页面中选择“../../Content/Site.css”而不是“〜/ Content / Site.css”?

时间:2010-12-14 04:09:57

标签: asp.net css asp.net-mvc-2

<link href="../../Content/Site.css" rel="stylesheet" type="text/css" />

上面的代码显示了在Site.Master模板中声明的外部css包含标记。

我的问题:为什么Asp.net MVC团队选择这种方式而不是使用“〜/ Content / Site.css”?

这是最佳做法吗?对不起,我是新手,还在学习提高自己的技能。

编辑1:我想更清楚地说“〜/”必须首先传递给url-resolving方法。因此,我可以按如下方式重写我的问题:

  

为什么团队选择“../ ..”而不是“〜/”由url解析器解决?

4 个答案:

答案 0 :(得分:2)

请参阅@PauliØsterø所说的内容。但是,既然你要求最佳实践,那么它就是......摆脱那些硬编码的字符串。对这些路径使用T4MVC

答案 1 :(得分:1)

〜是一个asp.net的东西,在纯HTML中没有意义。在通过将标记转换为服务器控件来处理的webforms中,可以将〜转换为绝对路径,而在MVC中则必须自己调用某个方法。例如,某些方法为Server.MapPath

答案 2 :(得分:1)

或者使用“/Content/Site.css”,因为“/”表示html中的站点根目录。

答案 3 :(得分:0)

这个问题已由MVC 3修复如下:我认为MVC团队已经阅读了这个问题: - )

<head>
    <title>@ViewBag.Title</title>
    <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
    <script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>
</head>