c# MVC 5 RouteConfig redirection

本文关键字:redirection RouteConfig MVC | 更新日期: 2023-09-27 18:18:23

最近我不得不更新我的mvc web应用程序,以便系统的基本实体以不同的文字显示在UI中。

让说

之前我有:" vessel "

现在我被要求制作:"Ships"

按照约定映射的url: mysite/{controller}/{action}/{id}

url是这样的:

mysite/Vessels/Record/1023 
mysite/Vessels/CreateVessel 

我在用户界面中做了所有的重命名,以便标题和标签从船舶更改为船舶,现在我被要求同时处理url。

现在,我不想重命名Controller名称或ActionResult方法名称,因为这是一些繁重的重构,因为很有可能,文字很快就会被要求再次更改…: -)

是否有任何快速的解决方案为我编辑只是RouteConfig,或类似的东西,可以做的工作与几行编码?

c# MVC 5 RouteConfig redirection

是的,只需注册将映射您的VesselsController动作的路由:

public class MvcApplication : System.Web.HttpApplication
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
            routes.MapRoute(
                "Vessels",                                              // Route name
                "Ship/{action}Ship/{id}",                               // URL with parameters
                new { controller = "Vessel", id = "" }                  // Parameter defaults
            );
            routes.MapRoute(
                "Default",                                              // Route name
                "{controller}/{action}/{id}",                           // URL with parameters
                new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
            );
        }
        protected void Application_Start()
        {
            RegisterRoutes(RouteTable.Routes);
        }
    }

还要确保在默认路由之前注册你的路由。因为,在其他情况下,默认路由将首先执行,你会得到一个异常,因为没有在你的应用程序中定义ShipController