在我的 Layout.cshtml
文件我有以下行:
<link rel="stylesheet" href="~/Content/bootstrap.css" />
我的假设是,因为我没有包括 Url.Content()
调用,它实际上只会呈现我写的内容,但不会自动扩展虚拟 URL。这个假设是错误的 - 生成的 HTML 确实包含文件的正确路径,而不是我输入的虚拟路径。
如果我包装 <link>
在 <script>
<script type="text/html">
<link rel="stylesheet" href="~/Content/bootstrap.css" />
</script>
则该 URL 不会展开。
ASP.NET MVC 的哪一部分自动解析 HTML,有没有办法控制它?
最佳答案
这是 Razor2 和 ASP.NET MVC 4 中包含的一项新功能,旨在通过不必使用 Url.Content
让生活更轻松。无处不在。
http://www.davidhayden.me/blog/asp.net-mvc-4-the-new-tilde-slash-feature-in-razor-2
该功能仅适用于标准 HTML 属性,这就是为什么您不能在 <script>
中使用它的原因标签或其他任何地方。
您可以使用简单的输出写入来解决此问题:
<link rel="stylesheet" href="@("~/Content/bootstrap.css")" />
关于asp.net - 为什么 MVC 会自动扩展虚拟 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21161924/