2012-03-16 26 views
9

Creé un área en mi solución MVC llamada "Admin". En esta área creé una carpeta llamada "Contenido" para almacenar mis archivos css.Hace referencia a un archivo css ubicado en el área

Trato de referencia en mi archivo css (MaterialPacking.css) desde un punto de vista (cshtml) así:

enter image description here

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

Es este el buen camino?

Gracias.

+0

usted debe tratar de visitar la dirección de enlace de css de la fuente vista en la pestaña separaete y comprobar qué error no se dan – archil

+1

esto fue respondida aquí. comprobar que funciona http://stackoverflow.com/questions/7495780/mvc-3-wont-serve-content-files-from-areas-subfolder – Jay

+0

¿El '@ Url.Content (" ~/contenido/MaterialPacking .css ")' ¿trabajo? – jrummell

Respuesta

4

que es realmente la única manera de hacerlo, a menos que se crea un controlador de enrutado para agarrarlo de la carpeta área

3

Se crea una clase por ejemplo 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; 
     } 

    } 
} 

y de esta manera se puede acceder a los archivos:

<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" /> 
Cuestiones relacionadas