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
,或类似的东西,可以做的工作与几行编码?
是的,只需注册将映射您的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
。