2012-03-16 9 views
9

MVCソリューションで「管理者」と呼ばれる領域を作成しました。このエリアでは、 "Content"という名前のフォルダを作成して、自分のcssファイルを保存しました。エリアにあるCSSファイルを参照する

私はこのようなビュー(CSHTML)からの私のCSSファイル(MaterialPacking.css)の上で参照しよう:

enter image description here

<link href="@Url.Content("~/Areas/Admin/Content/MaterialPacking.css")" rel="stylesheet" type="text/css" /> 

これは良い方法ですか?

ありがとうございました。

+0

あなたはseparaeteタブでソースの表示から、CSSのリンクアドレスを訪問し、それが、これはここで答えた – archil

+1

を与えないものをエラーチェックしてみてください。アウト http://stackoverflow.com/questions/7495780/mvc-3-wont-serve-content-files-from-areas-subfolder – Jay

+0

い '@ Url.Content("〜/コンテンツ/ MaterialPackingをそれをチェック.css ")'仕事? – jrummell

答えて

4

あなたは地域のフォルダ

3

からそれをつかむためにルーティングされたハンドラを作成しない限り、あなたは例のConentUrlHelper.cs

namespace CrewNetix.helper 
{ 
    public static class ContentUrlHelper 
    { 
     public static string ContentArea(this UrlHelper url, string path) 
     { 
      var modulName = url.RequestContext.RouteData.DataTokens["area"]; 
      string modulContentLoad = ""; 

      if (modulName != null) 

      { 
       if (!string.IsNullOrEmpty(modulName.ToString())) 
        modulContentLoad = "Areas/" + modulName; 

       if (path.StartsWith("~/")) 
        path = path.Remove(0, 2); 

       if (path.StartsWith("/")) 
        path = path.Remove(0, 1); 


       path = path.Replace("../", string.Empty); 

       return VirtualPathUtility.ToAbsolute("~/" + modulContentLoad + "/" + path); 
      } 

      return string.Empty; 
     } 

    } 
} 

そして、このようにのためのクラスを作成し、実際にそれを行うための唯一の方法ですあなたがファイルにアクセスすることができます

<script src="@Url.ContentArea("Script/PageLoad.js")" ></script> 
<script src="@Url.ContentArea("Script/jquery-1.9.1.min.js")" ></script> 
<script src="@Url.ContentArea("Script/kendo.all.min.js")" ></script> 
<script src="@Url.ContentArea("Script/kendo.web.min.js")" ></script> 
<link href="@Url.ContentArea("Content/Css/kendo.common.min.css")" rel="stylesheet" type="text/css" /> 
<link href="@Url.ContentArea("Content/Css/kendo.default.min.css")" rel="stylesheet" type="text/css" /> 
関連する問題