asp.net-mvc - 为什么使用 Url.Content 来引用资源?

标签 asp.net-mvc url model-view-controller asp.net-mvc-2 client-side

在我遇到的几乎每个 ASP.NET MVC 示例中,我总是看到 网址内容 用于引用 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" />

最佳答案

你所拥有的与 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")%>

关于asp.net-mvc - 为什么使用 Url.Content 来引用资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4414149/

相关文章:

c# - 针对自托管 Web API (OWIN/Katana) 验证 MVC 客户端

asp.net-mvc - SignalR 客户端在每次刷新页面时断开/连接。 ASP.NET MVC

javascript - AngularJS 选择多个选项

IOS Model View Controller 通信,用于从弹出窗口中的 slider 实时更新

javascript - MDL - 页面加载时弹出 snackbar

c# - 父 View 内的部分 View 不向 Controller 发送数据 - asp.net MVC

c# - 每个viewModel的knockout.js MVC按钮 Action 更改

javascript - 从没有子域等的 url 解析主机

javascript - 如何在同一域中运行两个 React JS 应用程序

php - 从 URL txt 获取文本