asp.net-mvc-4 – 在区域中使用Url.RouteUrl()和路由名称
发布时间:2020-12-15 22:39:50 所属栏目:asp.Net 来源:网络整理
导读:作为附注,我了解整个 ambiguous controller names问题,并使用命名空间来使我的路由工作,所以我不认为这是一个问题. 到目前为止,我有我的项目级别的控制器,然后是一个用户区域,并注册了以下内容: public class UserAreaRegistration : AreaRegistration{ pub
作为附注,我了解整个
ambiguous controller names问题,并使用命名空间来使我的路由工作,所以我不认为这是一个问题.
到目前为止,我有我的项目级别的控制器,然后是一个用户区域,并注册了以下内容: public class UserAreaRegistration : AreaRegistration { public override string AreaName { get { return "User"; } } public override void RegisterArea(AreaRegistrationContext context) { context.MapRoute( "UserHome","User/{id}",new { action = "Index",controller = "Home",id = 0 },new { controller = @"Home",id = @"d+" } ); context.MapRoute( "UserDefault","User/{controller}/{action}/{id}",id = UrlParameter.Optional } ); } } “UserHome”路由在那里,所以我可以允许看起来更干净的IMO的路由/ User / 5 vs. / User / Home / Index / 5. 理想情况下,我想使用Url.RouteUrl(“UserHome”,新的{id = 5})来生成其他地方的路由,但是这总是回到空白处,或者给我一个异常,称它找不到路由名称,显然在那里 但是当我使用Url.RouteUrl(“UserHome”,新的{controller =“Home”,action =“Index”,id = 5}),它没有任何问题. 为什么在路由映射中已经有默认值时,必须指定动作和控制器?我失踪了什么 解决方法
不知道是否有热修复,但现在的行为有点不同.
使用您的确切代码并尝试: Url.RouteUrl("UserHome",new { id = 5 }) 我现在得到: /User/5?httproute=True 这仍然看起来很尴尬,所以我尝试了路由,并添加了另一个默认参数: context.MapRoute( "UserHome",area = "User",id = 0,httproute = true },id = @"d+" } ); 现在我使用 Url.RouteUrl("UserHome",new { id = 5 }) 我得到一个很好的url /User/5 免责声明路由声明中httproute = true可能会有不必要的副作用. 另外,更详细的使用: @Url.RouteUrl("UserHome",new { controller = "Home",action = "Index",id = 5 }) 仍然工作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 将Ajax Jquery中的enum参数传递给MVC web a
- asp.net – WebAPI在控制器上找不到任何操作
- asp.net – Telerik RadGrid – 如何默认编辑模式?
- asp.net-core – .Net核心基本问题
- asp.net – OpenID Connect:验证用户ID令牌或访问令牌的正
- asp.net-mvc – 当前动作是ChildAction吗?
- asp.net-core – Asp.net Core中的Web应用程序与Web Api项目
- asp.net – System.DirectoryServices – 服务器不可操作
- asp.net-mvc – 同时发送文件并重定向到新页面的MVC方式是什
- asp.net-mvc – ScriptBundle(“?/ Scripts / vendor”)
推荐文章
站长推荐
- asp-classic – 如何判断ASP中的变量是否已声明
- asp.net-mvc – ASP.NET MVC:多个项目错误
- asp.net-web-api – Asp.net web api中的DbGeome
- asp.net-mvc – 如何使用ASP.NET MVC ApiControl
- asp.net-mvc – 使用NHibernate和Autofac管理多个
- asp.net – IIS Express安装目录在哪里?
- asp.net-mvc – 带tab-id的RedirectToAction()
- asp.net-core – 使用asp.net核心MVC进行任何操作
- asp.net-mvc – 在ASP.NET MVC 4中强制同步执行异
- asp.net-mvc-3 – ASP.NET MVC 3,动作过滤器和Au
热点阅读