Alexander Beletsky
Alexander Beletsky

Reputation: 19821

asp.net mvc using HREF in application running on IIS

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

Answers (2)

marcind
marcind

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

spender
spender

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

Related Questions