2010-07-18 52 views

回答

1

假設你的意思是你想你的應用程序選擇它的CSS和圖像文件夾動態基於請求的主機名(域名),以便基於域名到皮膚上的你的應用程序,你可以嘗試像這樣的:

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title>My Page</title> 
    <link rel="stylesheet" type="text/css" href="<%= Skin.Url("css/master.css") %>" /> 
</head> 
<body> 
    <img src="<%= Skin.Url("images/myimg.gif") %>" alt="myimg" /> 
</body> 
</html> 
+0

泰勒的回答將工作:

public static class Skin { public static string Url(string assetPath) { var host = System.Web.HttpContext.Current.Request.Url.Host; switch (host) { case "www.myfirstsite.com": return UrlPath("~/Content/myfirst/" + assetPath.TrimStart('/')); case "www.theothersite.com/": return UrlPath("~/Content/theother/" + assetPath.TrimStart('/')); default: return UrlPath("~/Content/default/" + assetPath.TrimStart('/')); } } private static string UrlPath(string virtualPath) { return VirtualPathUtility.ToAbsolute(virtualPath); } } 

這將使所有你的觀點引用CSS和圖像時是這個樣子。我遇到的問題是,只有在一段時間內您只需要很少的客戶端(或其他域)時,它就可以管理。另一方面,如果你期望客戶有很大的吸引力,那麼switch語句可能會成爲一個負擔。 – Ahmad 2010-07-19 06:30:39

+0

嘗試像LESS for .NET一樣更「動態」的方法:http://www.dotlesscss.com/ – queen3 2010-07-19 08:18:35

+0

我不想在我的代碼中手動執行此操作。有沒有用於管理這種情況的CMS? – coure2011 2010-07-19 09:06:36