c#MVC 5 RouteConfig重定向

最近我不得不更新我的mvc webapplication,以便在UI中显示系统的基本实体,并使用不同的文字.

让我们说

以前我曾经:“船只”

现在我被要求做到:“船舶”

按惯例映射的网址:mysite / {controller} / {action} / {id}

所以我有网址:

mysite/Vessels/Record/1023 

mysite/Vessels/CreateVessel 

我在用户界面中进行了所有重命名,以便标题和标签从船只更改为发货,现在我也要求处理这些网址.

现在,我不想重命名Controller名称或ActionResult方法名称,因为它是一些重度重构,因为很可能,文字将很快需要再次更改… 😉

通过编辑RouteConfig或类似的东西,有没有任何快速的解决方案,可以用几行编码来完成工作?

最佳答案 是的,只需注册将映射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.

点赞