Reputation: 19821
There is a partial view representing pager control (very similar to this) for blog content. Code generates HTML with references and href like, "/Blog/Posts/Page/1"
, "/Blog/Posts/Page/2"
etc.
It worked absolutely fine on Cassini, but after I switched to IIS problems appeared.
IIS application running in virtual folder, so URL is
http://localhost/tracky
and blog area located,
http://localhost/tracky/blog
As I press on pager button, I recieve 404, because the URL would be
http://localhost/blog/page/3
Instead of
http://localhost/tracky/blog/page/3
My question is, how to handle such situation? how to change code generation to provide correct URL? how to make it work same - as root applicaton or application in virtual folder?
Source code is here
Upvotes: 0
Views: 566
Reputation: 53183
You should be using the following:
UrlHelper.GenerateContentUrl("~/Blog/Posts/Page/1");
The ~
allows the url to be resolved relative to the application path and should produce correct results in both cassini and IIS.
Upvotes: 0
Reputation: 120420
You need to generate your urls either by using ActionLink
in your view, or using an UrlHelper in your href as follows: <a href="<%=Url.Content("~/blog/page/3")%>" ..>bla</a>
. This will generate Urls that are adjusted accoring to your application root.
Upvotes: 3