有一个部分视图代表博客内容的寻呼机控件(非常类似于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
答案 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中生成正确的结果。