我有一个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>
Run Code Online (Sandbox Code Playgroud)
这在运行时工作正常,但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);
}
Run Code Online (Sandbox Code Playgroud)
由此产生了更清晰的标记:
<%= Html.Stylesheet("~/Content/custom.css") %>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2066 次 |
| 最近记录: |