在我的布局视图(_Layout.cshtml)中,我需要使用css文件,具体取决于当前的客户端。如果客户端特定的css不存在,我需要使用默认的css。我目前有以下代码,但无法使其正常工作。我做错了什么?
<head>
if (@System.IO.File.Exists("@ViewData['client_dir']/client.css") {
<link href="@ViewData["client_dir"]/client.css" rel="stylesheet" type="text/css" />
} else {
<link href="/content/default.css" rel="stylesheet" type="text/css" />
}
</head>
ViewData项的值为“/ Data / Client-1”。
结果html:
if (False {
<link href="/Data/Client-2/client.css" rel="stylesheet" type="text/css" />
} else {
<link href="/content/default.css" rel="stylesheet" type="text/css" />
}
我也试过这个:
@{
if (System.IO.File.Exists("ViewData['client_dir']/client.css")) {
<link href="@ViewData["client_dir"]/client.css" rel="stylesheet" type="text/css" />
} else {
<link href="/content/default.css" rel="stylesheet" type="text/css" />
}
}
然后生成的html总是包含这个:
<link href="/content/default.css" rel="stylesheet" type="text/css" />
所以我猜“@ViewData ['client_dir'] / client.css”还需要其他东西吗?
答案 0 :(得分:0)
@{
var cssFile = String.Format("{0}{1}", ViewData["client_dir"], "/css/client.css");
var absolutePath = HttpContext.Current.Server.MapPath(cssFile);
if (System.IO.File.Exists(absolutePath)) {
<link href=@cssFile rel="stylesheet" type="text/css" />
} else {
<link href="/content/default.css" rel="stylesheet" type="text/css" />
}
}