为什么使用 Url.Content 来引用资源?

发布于 2024-10-07 06:10:14 字数 400 浏览 2 评论 0原文

在我遇到的几乎每个 ASP.NET MVC 示例中,我总是看到 Url.Content 被用来引用 CSS、JavaScript 和图像。没有人解释过为什么要使用它。

有人愿意解释一下吗?

这样做有什么不好:

<img src="/Content/Img/MyImage.png" alt="My Image" />
<script src="/Scripts/jquery.js" type="text/javascript"></script>
<link href="/Content/Css/Default.css" rel="stylesheet" type="text/css" media="all" />

In almost every ASP.NET MVC example I've come across, I always see Url.Content being used to reference CSS, JavaScript, and Images. Not once has anyone explained WHY to use it.

Anyone care to explain?

What's so bad about doing:

<img src="/Content/Img/MyImage.png" alt="My Image" />
<script src="/Scripts/jquery.js" type="text/javascript"></script>
<link href="/Content/Css/Default.css" rel="stylesheet" type="text/css" media="all" />

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

请别遗忘我 2024-10-14 06:10:14

你所拥有的与 Url.Content() 的作用相同。 Url.Content() 就像在路径的开头添加 ~ 一样:

<script src="~/Scripts/jquery.js" type="text/javascript"></script>

只需确保路由的路径始终正确。您还可以创建一个 Html 帮助器方法来简化此操作:

public static string RenderScript(this HtmlHelper htmlHelper, string file) {
            var f = file.EndsWith(".js") ? file : string.Concat(file, ".js");
            return string.Format("<script src=\"/public/scripts/{0}\" type=\"text/javascript\"></script>", f);
        }

然后您可以将其放入母版页中:

<%=Html.RenderScript("jquery")%>

What you have works the same as Url.Content(). Url.Content() is just like adding a ~ to be beginning of your paths:

<script src="~/Scripts/jquery.js" type="text/javascript"></script>

Just ensures the path is always correct with routing. You can also make a Html helper method to make this easier:

public static string RenderScript(this HtmlHelper htmlHelper, string file) {
            var f = file.EndsWith(".js") ? file : string.Concat(file, ".js");
            return string.Format("<script src=\"/public/scripts/{0}\" type=\"text/javascript\"></script>", f);
        }

Then you can just put this in your masterpage:

<%=Html.RenderScript("jquery")%>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文