开发者

Running ASP.NET MVC in a subdomain makes Html.ActionLink render broken links

I am running MVC in a subdomain

http://test.domain.com which points to the /Test directory on my webhost4life account.

Html.ActionLink("About", "About", "Home")

it renders a link to

http://test.domain.com/Test/Home/About -- which gives a 404

the link should be ..

http://test.domain.com/Home/About

is there a way to override ActionLink to omit the /Test on render?

Thank you


Experiment 1

I ad开发者_StackOverflow中文版ded a route to the table like this...

routes.MapRoute(
     "Test",  // Route name
     "Test/{controller}/{action}/{id}",  // URL with parameters
     new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
);

and now action link renders links like this.. http://test.domain.com/Test/Test/Home/About/ when this is clicked it does not give a 404 but gives the Home controler About action.

Result

No more broken links but the site renders ugly urls.


For a site using lots of subdomains I use a nifty MVC extension from ITCloud called UrlRouteAttribute. It allows you to assign a route to every action as an attribute setting the path and name. I have extended this to allow fully qualified paths - so to include the domain/subdomain the controller should attach to. If this is something you'd be interested in I'll upload a copy somewhere.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜