在我的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>
然后不会展开网址。
ASP.NET MVC的哪一部分可以自动解析HTML并且有办法控制它吗?
答案 0 :(得分:3)
这是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")" />