重命名控制器asp.net mvc

Mar*_*oeb 7 asp.net asp.net-mvc

我有一个大约有9个控制器的大项目.现在在项目结束时,网址重新发布变化.如何最好地处理这种情况 - 重命名控制器似乎太麻烦了......我需要更改servercode和javascript中的所有链接

sai*_*ama 6

您可以通过更改现有路线来解决问题.在你的global.asax中,你会找到像这样的代码片段

routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );
Run Code Online (Sandbox Code Playgroud)

这将URL'/ Controller/Action/Id'映射到Controller,Action和Id.你可以提供这样的路线

    routes.MapRoute(
            "RefactoredRoute", // Route name
            "SomeChangedURLBase/{action}/{id}", // URL with parameters
            new { controller = "Controller", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );
Run Code Online (Sandbox Code Playgroud)

将请求路由到/ SomeChangedURLBase ...由Controller处理.

请注意,应在默认路由之前注册这些路由,以避免视图中生成的链接指向默认路由并生成旧URL.