加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – ASP.NET MVC Route,在控制器之前具有值,没有尾部

发布时间:2020-12-16 00:09:59 所属栏目:asp.Net 来源:网络整理
导读:这可能是一个简单的问题,但我无法让它发挥作用. 我在RouteConfig中指定了这条路线 routes.MapRoute( name: "DefaultSiteRoute",url: "{accountid}/{hostname}/{controller}/{action}/{id}",defaults: new { controller = "Home",action = "Index",id = UrlPa
这可能是一个简单的问题,但我无法让它发挥作用.

我在RouteConfig中指定了这条路线

routes.MapRoute(
    name: "DefaultSiteRoute",url: "{accountid}/{hostname}/{controller}/{action}/{id}",defaults: new { controller = "Home",action = "Index",id = UrlParameter.Optional,accountid = UrlParameter.Optional,hostname = UrlParameter.Optional  }
);

它适用于这样的网址

/123456/www.test.com/

或这个

/123456/www.test.com/Controller/Action

但它无法应付这一点

/123456/www.test.com

我得到了一个IIS 404

更奇怪的是,如果我使用默认的Controller和Action(即Home / Index)调用该路由的Url.Action,它会创建一个没有尾部斜杠的URL,然后它无法识别.我真的需要它使用和不使用尾部斜杠.

解决方法

问题是ASP.net 4.0不会将以扩展名结尾的URL路由到MVC.他们这样做是为了加快对静态文件的请求. See this link

你可以做什么:

1)配置UrlRoutingModule以路由所有托管和非托管请求(默认只是路由托管请求).

缺点:可能对性能不利.

06000

2)配置处理.com,.net.组织等扩展

缺点:感觉像黑客.

06001

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读