asp.net-mvc – 属性路由不工作在区域
场景:我有一个窗体区域在我的ASP.NET MVC 5网站。
我试图重定向到详细信息操作,它使用使用新的属性路由功能定义的自定义路由。 RedirectToAction: return RedirectToAction("Details",new { slug }); 我重定向到的操作: [HttpGet] [Route("forms/{slug}")] public ActionResult Details(string slug) { var form = FormRepository.Get(slug); ... return View(model); } 我会期望重定向到http:// localhost / forms / my-slug,而是应用程序将重定向到http:// localhost / Forms / Details?slug = my-slug。 这意味着属性路由不工作。 这怎么可以解决? 我添加了routes.MapMvcAttributeRoutes();行到我的RouteConfig: public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapMvcAttributeRoutes(); routes.MapRoute( name: "Default",url: "{controller}/{action}/{id}",defaults: new { controller = "Home",action = "Index",id = UrlParameter.Optional } ); } } 这里是我的Application_Start(): protected void Application_Start() { AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); } 解决方法
您可能将基于惯例的路由与属性路由组合,并且您应该在映射属性路由后注册您的区域。
线 AreaRegistration.RegisterAllAreas(); 应该调用AFTER这行: routes.MapMvcAttributeRoutes(); 解释(从http://blogs.msdn.com/b/webdev/archive/2013/10/17/attribute-routing-in-asp-net-mvc-5.aspx#route-areas):
当您创建一个空白的asp.net mvc网站,添加一个区域并开始使用属性路由,你会遇到这个问题,因为在Visual Studio中的“添加区域”操作添加RegisterAllAreas调用在您的Application_Start,在路由配置之前。 替代解决方案 也许你不打算继续使用基于约定的路由,并且更喜欢只使用属性路由。在这种情况下,您可以只删除FormsAreaRegistration.cs文件。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 带有MVC 3文件上传的空Request.Files
- 用HttpClientFactory来实现简单的熔断降级
- 树莓派(一)系统安装
- asp.net-mvc – MVC6自托管wwwroot内容返回404,IIS Express
- asp.net-mvc – 具有嵌套视图模型和Knockout的ASP.NET MVC
- asp.net-mvc – 如何传递列表从控制器到MVC 3中查看
- asp.net – MVC3生成包含端口号的URL,如何阻止它
- asp.net-mvc-3 – 如何在代码中检测属性是否使用HiddenInpu
- asp.net-mvc – 模拟任务>与NSubstitute
- asp.net – VS2012 Crystal Report Viewer组树隐藏
- asp.net-mvc – 如何在MVC中完全分离视图和模型
- asp.net – GridView中的数据格式设置,AutoGener
- asp.net-mvc-4 – MVC 4 – 从视图中的Controlle
- asp.net – Visual Studio 2017错误:无法启动程
- asp.net-core – 从Controller传递信息到中间件
- asp.net – 为什么WebMethod声明为静态?
- asp.net-mvc-2 – 基于两个属性的自定义模型验证
- Asp.net MVC中使用JQuery插件ajaxFileUpload上传
- ASP到ASP.NET会话变量
- 当我与Fiddler核实时,为什么我的asp.net mvc应用