2010-01-06 74 views
0

我有這樣的代碼在我的ASP.NET MVC項目的母版頁:ASP.NET MVC和回覆於母版頁

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

則:

<% 
    switch(Request.Browser.Browser) 
    { 
     case "IE": // Internet Explorer 
      Response.Write("<link href=\"./Content/Site_IE.css\" rel=\"stylesheet\" type=\"text/css\" />"); 
      break; 
     case "AppleMAC-Safari": // Chrome 
      Response.Write("<link href=\"./Content/Site_FF.css\" rel=\"stylesheet\" type=\"text/css\" />"); 
      break; 
     case "Firefox": // Firefox 
      Response.Write("<link href=\"./Content/Site_FF.css\" rel=\"stylesheet\" type=\"text/css\" />"); 
      break; 
     default: // All others 
      Response.Write("<link href=\"./Content/Site_FF.css\" rel=\"stylesheet\" type=\"text/css\" />"); 
      break; 
    } 
%> 

當我直接嵌入它可以工作,但是當我嵌入switch語句時,它不會從視圖中找到位置,但會在起始頁面上找到它。

如何映射路徑以便從任何地方找到路徑?

回答

1

我想我寧願看到控制器,並通過作爲一個模型屬性的樣式做出的決定。你可以很容易地測試它,你的標記會更清晰。

0

「./」表示「來自當前目錄」。只需使用相對於應用程序根目錄的路徑,從斜線開始。

Response.Write("<link href=\"/Content/Site_FF.css\" ... 
2

試試這個:

 <%  
switch(Request.Browser.Browser) 
{ 
    case "IE": %> // Internet Explorer 
     <link href="<%= Url.Content ("~/Content/Site_IE.css") %>" rel="stylesheet" type="text"/css" /> 
     <% break; 
    case "AppleMAC-Safari": %> // Chrome 
     <link href="<%= Url.Content ("~/Content/Site_FF.css") %>" rel="stylesheet" type="text"/css" />     
     <% break; 
    case "Firefox": %> // Firefox 
     <link href="<%= Url.Content ("~/Content/Site_FF.css") %>" rel="stylesheet" type="text"/css" />     
     <% break; 
    default: %> // All others 
     <link href="<%= Url.Content ("~/Content/Site_FF.css") %>" rel="stylesheet" type="text"/css" /> 
     <% break; 
} 
%> 
1

我發現這一個:

Response.Write("<link href=\""+Page.ResolveClientUrl("~/Content/Site_IE.css")+"\" rel=\"stylesheet\" type=\"text/css\" />");