我有一个 ViewPage,我想在其中指定一个外部样式表。样式表仅适用于 ViewPage 中的元素。经过一些不成功的尝试后,我决定使用“Url.Content”,如下所示:
<asp:Content ID="cssLinkContent" ContentPlaceHolderID="CssLinkContent" runat="server">
<link rel="stylesheet" type="text/css" href="<%= Url.Content("~/Content/custom.css")%>" />
</asp:Content>
这在运行时工作正常,但 Visual Studio 编辑器显示错误“类或 CssClass 值未定义”。我认为这是因为当我使用“Url.Content”时 Visual Studio 无法解析外部样式表。
有没有关于在运行时成功解析 URL 并让 Visual Studio 满意的解决方案?
提前致谢。
最佳答案
我会忽略 Visual Studio。这是一个很棒的工具,但有时它会尽力而为。您确定这是错误还是警告?我知道这是一个糟糕的答案,但我就是这么做的。
它不会提示仅用作 jQuery 素材的样式吗?
顺便说一句,您可能想编写一个 Html.Stylesheet 帮助程序来封装标记和 url 解析行为,如下所示:
public static string Stylesheet(this HtmlHelper Html, string url) { return Html.Stylesheet(url, null); }
public static string Stylesheet(this HtmlHelper Html, string url, string media)
{
UrlHelper Url = new UrlHelper(new RequestContext(Html.ViewContext.HttpContext, Html.ViewContext.RouteData));
string html = "<link type=\"text/css\" rel=\"stylesheet\" href=\"{0}\" {1}/>";
if (!string.IsNullOrEmpty(media))
media = "media=\"" + media + "\"";
return string.Format(html, Url.Content(url), media);
}
导致这个更清晰的标记:
<%= Html.Stylesheet("~/Content/custom.css") %>
关于asp.net-mvc - ASP.NET MVC 中外部 css 的更好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1094348/