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 – LINQ:不支持查询运算符’ElementAtOrDefault’
- js触发asp.net的Button的Onclick事件应用
- asp.net – 数据注释 – 使用属性扩展并在资源文件中存储正
- asp.net – 登录后对Membership.GetAllUsers()的例外情况:
- 什么是链接服务器的ASP.NET连接字符串格式?
- 如何在ASP.NET Web应用程序中打开一个SectionGroup?
- ASP.NET页面在IE缓存的清除办法
- asp.net编程实现删除文件夹及文件夹下文件的方法
- asp.net-mvc – 如果用户在int字段中放入非数字字符串,则自
- asp.net – 我可以重新发布或携带POST数据(如果是这样,我可
- jQuery Ajax方法调用 Asp.Net WebService 的详细
- ASP.NET MVC3中的HTML反而不是JSON的IIS响应
- asp.net-mvc – ASP.NET捆绑/分类:包括动态生成
- asp.net-mvc – 在ASP.NET MVC中的LinkButton
- asp.net mvc webapi 实用的接口加密方法示例
- ASP.NET Core 2.0中Razor页面禁用防伪令牌验证
- asp.net-mvc – 何时使用asp.net mvc的路由规则v
- asp.net – 如何添加.aspx页面到现有的MVC 4项目
- 实体框架 – WebApi OData:$filter’any’或’a
- asp.net-mvc – 图像URL中的符号MVC导致一个潜在
