C# 为什么我的代码在标记属性中没有按预期进行计算?

C# 为什么我的代码在标记属性中没有按预期进行计算?,c#,.net,model-view-controller,virtual-directory,C#,.net,Model View Controller,Virtual Directory,此代码: <% string path = Request.ApplicationPath.ToString(); %> <link href="<%= path %>/Content/Site.css" rel="stylesheet" type="text/css" /> 返回以下内容: <link href="../Views/Shared/%3C%25=%20path%20%25%3E/Content/Site.css" rel="styl

此代码:

<% string path = Request.ApplicationPath.ToString(); %>
<link href="<%= path %>/Content/Site.css" rel="stylesheet" type="text/css" />

返回以下内容:

<link href="../Views/Shared/%3C%25=%20path%20%25%3E/Content/Site.css" rel="stylesheet" type="text/css" />

而我正期待着:

<link href="/foo/Content/Site.css" rel="stylesheet" type="text/css" />


为什么我的代码没有返回预期的路径?如何设置脚本、css文件和图像,使其在虚拟目录更改时具有灵活性?

回答第一个问题,您使用的是什么视图引擎?您使用的是MVC3吗?我认为MVC3默认为Razor,而不是Asp.Net作为视图引擎

要回答第二个问题,您应该尝试以下方法:


这将输出您想要的内容来回答您的第一个问题,您使用的是什么视图引擎?您使用的是MVC3吗?我认为MVC3默认为Razor,而不是Asp.Net作为视图引擎

要回答第二个问题,您应该尝试以下方法:


可以使用~(tilde)前缀指定虚拟路径。

可以使用~(tilde)前缀指定虚拟路径。

谢谢。这正是我想要的。至于视图引擎,我如何确定我使用的是哪一个?在global.asax中,您可以设置视图引擎。如果其中没有代码,则可能使用默认值。我认为MVC3默认使用Razor,早期版本使用WebForms。您可以查看此内容以查找其他许多视图引擎:我知道这个问题已经存在5年了,但请记住,我使用的是WebForms.:)谢谢这正是我想要的。至于视图引擎,我如何确定我使用的是哪一个?在global.asax中,您可以设置视图引擎。如果其中没有代码,则可能使用默认值。我认为MVC3默认使用Razor,早期版本使用WebForms。您可以查看此内容以查找其他许多视图引擎:我知道这个问题已经存在5年了,但请记住,我使用的是WebForms.:)