ASP.NET MVC全能路由
我已经在StackOverflow上阅读了一些关于此的线程,但无法使其工作.我在Global.asax的RegisterRoutes结尾处有这个. routes.MapRoute( "Profile","{*url}",new { controller = "Profile",action = "Index" } ); 基本上我想要实现的是让mydomain.com/Username指向我的成员个人资料页面.我如何设置我的控制器和RegisterRoutes以使其工作? 目前mydomain.com/somethingthatisnotacontrollername出现404错误. 解决方法解决方案适用于您的情况但不建议使用您的应用程序中有一组预定义的控制器(通常少于10个),因此您可以对控制器名称设置约束,然后将其他所有控制器路由到用户配置文件: routes.MapRoute( "Default","{controller}/{action}/{id}",new { controller = "Home",action = "Index",id = UrlParameter.Optional },new { controller = "Home|Admin|Reports|..." } ); routes.MapRoute( "Profile","{username}/{action}",action = "Details" } ); 但是,如果某些用户名与您的控制器名称相同,则无法使用.根据经验最终的经验数据,这是一个小的可能性,但它不是0%的机会.当用户名与某个控制器相同时,它自动意味着它将由第一个路由处理,因为约束不会使它失败. 推荐解决方案 最好的方法是将URL请求改为: www.mydomain.com/profile/username 为什么我推荐这样做?因此,这将使其更简单和更清洁,并允许有几个不同的配置文件页面: >详情www.mydomain.com/profile/username 在这种情况下,路由定义将是这样的: routes.MapRoute( "Profile","Profile/{username}/{action}",action = "Details" } ); routes.MapRoute( "Default",id = UrlParameter.Optional } ); (编辑:哈尔滨站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – UserControl Viewstate在回发后丢失所有值
- asp.net – 查询字符串参数使我的应用程序面临风险?
- asp.net-core – .NET Core SDK安装程序无法在Windows 2012
- asp.net-core – .net核心自定义身份验证中的User.Identity
- asp.net-mvc – 值不能为空或为空.参数名称:contentPath
- asp.net – 使用/ signalr / ping调用时使用长轮询
- asp.net Xml绑定到数据控件的具体实现
- 如何刷新#include文件 – 它们在IIS7 / ASP.NET上进行缓存
- asp.net – 在客户端启用/禁用RequiredValidator /不启动Cu
- asp.net-mvc – 为什么我的视图模型中的内部成员无法在视图
- asp.net – 在网站上放置广告的最佳做法?
- asp.net-mvc – 从控制器重定向初始化不工作
- Asp.net MVC实现生成Excel并下载功能
- 如何使用WMD在ASP.NET中存储降价?
- MVC .Net Cascade在使用EF Code First Approach时
- 如何在不使用MembershipProvider的情况下使用ASP
- asp.net-mvc – ASP.Net MVC:如何根据原始的Jso
- asp.net-mvc – .Net 4.5.1框架的maxRequestLeng
- asp.net-mvc – MVC应用程序中的随机数生成
- asp.net – 如何从复选框列表中获取最新的选定值