asp.net mvc在IIS上运行的应用程序中使用HREF

时间:2010-10-30 21:28:11

标签: asp.net-mvc

有一个部分视图代表博客内容的寻呼机控件(非常类似于this)。代码生成带有引用的HTML和href,如"/Blog/Posts/Page/1""/Blog/Posts/Page/2"等。

它在Cassini上运行得非常好,但在我切换到IIS之后出现了问题。

IIS应用程序在虚拟文件夹中运行,因此URL为

http://localhost/tracky

和博客区域,

http://localhost/tracky/blog

当我按下寻呼机按钮时,我收到404,因为URL是

http://localhost/blog/page/3

而不是

http://localhost/tracky/blog/page/3

我的问题是,如何处理这种情况?如何更改代码生成以提供正确的URL?如何使它工作相同 - 作为root应用程序或虚拟文件夹中的应用程序?

源代码为here

2 个答案:

答案 0 :(得分:3)

您需要在视图中使用ActionLink或在href中使用UrlHelper来生成网址,如下所示:<a href="<%=Url.Content("~/blog/page/3")%>" ..>bla</a>。这将生成根据您的应用程序根目录进行调整的Urls。

答案 1 :(得分:0)

您应该使用以下内容:

UrlHelper.GenerateContentUrl("~/Blog/Posts/Page/1");

~允许相对于应用程序路径解析url,并且应该在cassini和IIS中生成正确的结果。