1.要想使用Route特性自定义Action名称,需要注册Mvc路由特性。
在RouteConfig的RegisterRoutes方法里,调用:routes.MapMvcAttributeRoutes();
这里需要注意的是,如果Controller继承了一个父Controller,且父类Controller中,有泛型方法,就会报错:“您不能调用控制器xxx上的xx方法,因为该方法是一种泛型方法。”
如在父类Controller中定义了:pulbic JsonResult Success(string msg)。
这里需要吧pulbic访问修饰符改成protected就好,
2.路由全改为小写,需要重写路由匹配规则,代码如下:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapMvcAttributeRoutes();
routes.MapLowerCaseUrlRoute("Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional });
//routes.MapRoute(
// name: "Default",
// url: "{controller}/{action}/{id}",
// defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
//);
}
}
public