ResolveUrl插入额外的报价

时间:2011-04-27 20:42:02

标签: c# asp.net asp.net-mvc-2 iis

我正在编写我的第一个MVC2应用程序。我的母版页工作得非常漂亮,当我在本地运行它时,它的功能与我想要的完全一样。

我的问题是我将它部署在拥有大量应用程序的服务器上。 ResolveUrl似乎行为不端。我得到了正确的路径,但无论出于什么原因,插入额外的报价,或丢弃我的报价。

这是我的<link>

<link href='<%= ResolveUrl("~/Content/Site.css") %>' rel="stylesheet" type="text/css"/>

什么出来(客户端,在ASP.NET完成之后):

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

显然这不是我想要的。当我更正Firebug中的引号时,网站会正确显示。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

您应该使用Url.Content帮助程序:

<link href="<%= Url.Content("~/Content/Site.css") %>" rel="stylesheet" type="text/css"/>

此外,您似乎正在使用WebForms视图引擎,请确保删除了runat="server"代码中可能存在的所有<head>属性。

ResolveUrlrunat="server"是遗留内容,不应在ASP.NET MVC应用程序中使用。

答案 1 :(得分:2)

既然你说这是MVC,你应该尝试使用帮助

<link href="<%= Url.Content("~/Content/Site.css") %>" rel="stylesheet" type="text/css"/>