asp.net mvc发布在网站虚拟目录要怎么配置

时间:2021-10-04 12:14:04
asp.net mvc发布在网站虚拟目录要怎么配置

默认路由是这样的:{controller}/{action}/{id} 
正常访问地址http://localhost:555/controller/action
在虚拟目录下面是这样的:http://localhost:555/test/controller/action

如果将路由改成:test/{controller}/{action}/{id} 

那么虚拟目录就变成:http://localhost:555/test/test/controller/action

请问要怎么配置才能运行在虚拟目录下

这是iis结构
asp.net mvc发布在网站虚拟目录要怎么配置

3 个解决方案

#1


什么都不用配置啊,默认路由就行了,虚拟目录名IIS会自动加上的,其它和站点没有区别,我刚刚做过这样的小项目,不过要注意的就是页面中不要用类似于 /mysite/images这样的绝对路径,而要用 Url.Content("~/mysite/images")这样转换成相对路径

#2


楼上在开玩笑吗?你里边的跳转连接不用改吗?

#3


引用 1 楼 webdiyer 的回复:
什么都不用配置啊,默认路由就行了,虚拟目录名IIS会自动加上的,其它和站点没有区别,我刚刚做过这样的小项目,不过要注意的就是页面中不要用类似于 /mysite/images这样的绝对路径,而要用 Url.Content("~/mysite/images")这样转换成相对路径

说的没错,images、js等资源文件引用路径需要这么写。<a></a>里的链接地址也不能直接写/controller/action而应该写成:@url.action("action","controller"),如果有area,可这么写:@url.action("action","controller",new {area="areaname"})

#1


什么都不用配置啊,默认路由就行了,虚拟目录名IIS会自动加上的,其它和站点没有区别,我刚刚做过这样的小项目,不过要注意的就是页面中不要用类似于 /mysite/images这样的绝对路径,而要用 Url.Content("~/mysite/images")这样转换成相对路径

#2


楼上在开玩笑吗?你里边的跳转连接不用改吗?

#3


引用 1 楼 webdiyer 的回复:
什么都不用配置啊,默认路由就行了,虚拟目录名IIS会自动加上的,其它和站点没有区别,我刚刚做过这样的小项目,不过要注意的就是页面中不要用类似于 /mysite/images这样的绝对路径,而要用 Url.Content("~/mysite/images")这样转换成相对路径

说的没错,images、js等资源文件引用路径需要这么写。<a></a>里的链接地址也不能直接写/controller/action而应该写成:@url.action("action","controller"),如果有area,可这么写:@url.action("action","controller",new {area="areaname"})