在MVC中引用内容的正确方法

时间:2010-09-14 17:38:51

标签: asp.net-mvc asp.net-mvc-2 relative-path

在我的本地计算机上运行我的网络应用程序时,我可以使用以下方法参考css / scripts / images:

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

但是当我部署到我的开发服务器时,它无法找到我的任何内容。在研究了这个问题之后,每个人都建议使用以下方法:

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

至少现在我的所有内容都已加载,并在我推送到开发服务器时工作。但是现在我有服务器脚本,Visual Studio中的“设计”视图不会加载任何样式/等。我想知道是否有替代品或我遗漏的东西,或许会解决这个问题?或者也许我说这一切都错了?任何意见都非常感谢。

3 个答案:

答案 0 :(得分:6)

您发现的建议是引用内容的好方法。

就Design View而言,不要为了获得Design View而牺牲代码的优雅。学会喜欢Code View。在浏览器中预览。根据我的经验,该工作流程确实没有重大缺点(一旦你习惯了它)。

(另外,我认为大多数喜欢ASP.NET MVC的开发人员都不会在Visual Studio中使用“设计视图”。我喜欢MVC的原因之一是它让我对标记很挑剔。任何一种设计师都不在乎这种想法。)

答案 1 :(得分:4)

你总是可以用与此类似的暴行欺骗设计师:

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

但是,老实说,在浏览器中点击 F5 会比等待设计者加载更快(即使您的应用程序托管在世界的另一端)。

答案 2 :(得分:1)

设计视图坏了吗?这不是你的代码中的错误,就像它的方式。这适用于ASP.NET MVC和常规ASP.NET