2011-04-27 30 views
2

我在写我的第一个MVC2应用程序。我有我的母版页工作得很好,当我在本地运行时,它的功能和我想要的完全一样。ResolveUrl插入额外的报价

我的问题是,我有一大堆的应用服务器上部署它。 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中的引号时,该网站显示正确。

任何想法?此外

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

,因为它似乎是你正在使用的WebForms的视图引擎确保已删除所有runat="server"属性可能存在的<head>标签:

+0

你有没有尝试逃跑('\“')双引号? – 2011-04-27 20:44:20

+0

在哪里?在<%= ->应该做的事情,对我来说, ?右 – Crisfole 2011-04-27 20:47:37

+0

我不能正确地把握,这就是为什么我问内嵌脚本是我尝试从ASP.NET保持距离,当我做我总是有同样烦恼的小事,但繁琐的,因为这 - 真的不能如何事情在MVC花园完成。说话 – 2011-04-27 20:50:14

回答

2

你应该使用Url.Content帮手。

ResolveUrlrunat="server"是传统的东西,不应该在ASP.NET MVC应用程序中使用。

+0

你打我买了几秒钟。 :(哈哈 – 2011-04-27 20:49:13

+0

好了。这是有道理的,为什么去掉RUNAT =服务器? – Crisfole 2011-04-27 20:50:49

+1

@Cpfohl,因为'RUNAT =“服务器”'用于与服务器端控件。服务器端控件不再应在ASP.NET MVC中使用。 – 2011-04-27 20:51:51

2

既然你说这是MVC,你应该尝试使用一个辅助

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