引用位于区域中的css文件

时间:2012-03-16 11:10:26

标签: asp.net-mvc

我在我的MVC解决方案中创建了一个名为“Admin”的区域。在这个区域,我创建了一个名为“Content”的文件夹来存储我的css文件。

我尝试从视图(cshtml)中引用我的css文件(MaterialPacking.css),如下所示:

enter image description here

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

这是好方法吗?

感谢。

3 个答案:

答案 0 :(得分:5)

除非你创建一个路由处理程序从区域文件夹中获取它,否则这是唯一的方法

答案 1 :(得分: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" />

答案 2 :(得分:0)

您可以尝试从wwwroot使用样式

<link href="~/css/yourstyle.css" rel="stylesheet" type="text/css" />

它适用于ASP.NET Core 2