阻止MVC ViewMasterPage解析CSS URL

Osc*_*hed 1 asp.net-mvc master-pages

默认情况下,/folderlevel1/folderlevel2/Site.master 从这个URL访问的.NET MVC2中的主页domain.com/urllevel1/urllevel2/将解析此标记中的URL:

<link href="/Content/Site.css" rel="stylesheet" type="text/css" />
Run Code Online (Sandbox Code Playgroud)

<link href="../../Content/Site.css" rel="stylesheet" type="text/css" />
Run Code Online (Sandbox Code Playgroud)

这在我的多租户MVC应用程序中成为问题.我想阻止这种行为.我希望母版页单独留下网址.

she*_*mar 5

您可能遇到此问题,因为当您将head标记指定为服务器端控件时,ASP.NET会执行魔术技巧,如下所示:

<head runat="server">
Run Code Online (Sandbox Code Playgroud)

这些技巧包括:

  • 解析相对CSS路径
  • 从视图的@Page指令填充标题和元标记

如果您不想要这些技巧,只需runathead标记中删除该属性:

<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %>

<!DOCTYPE html>
<html>
<head> 
    <link href="Content/Site.css" rel="stylesheet" type="text/css" />
</head>
<body>
...
</body>
</html>
Run Code Online (Sandbox Code Playgroud)