任何基于Asp.net或Asp.net MVC模板的系统?

时间:2010-07-18 18:22:58

标签: asp.net asp.net-mvc

.net是否有基于模板的系统?我有几个域我想用单个系统处理它们。每个域可以有不同的设计。但所有这些都将通过单一的管理系统进行管理。

1 个答案:

答案 0 :(得分:1)

假设您的意思是希望您的应用根据请求中的主机名(域名)动态选择它的CSS和图像文件夹,以便根据域名为您的应用设置外观,您可以尝试这样的事情:

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和图像时,会使所有视图看起来像这样:

<%@ 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>