我可以使用 routes.MapMvcAttributeRoutes();在 MVC4 上?
Can i use routes.MapMvcAttributeRoutes(); on MVC4?
我尝试在 MVC4 上创建一个控制器
我需要特殊属性的链接
所以当我打开 RouteConfig.cs
我找不到这个:
routes.MapMvcAttributeRoutes();
并给我一个错误。
那么我如何为 MVC 4 上的每个控件和操作设置一个特殊属性
MapMvcAttributeRoutes()
扩展方法仅在 MVC 版本 5 或更高版本中可用,因为 RouteCollectionAttributeRoutingExtensions
class 在以前的版本中不存在。在 MVC 4 或更低版本中使用该方法将显示此错误:
'RouteCollection' does not contain a definition for
'MapMvcAttributeRoutes' and no extension method
'MapMvcAttributeRoutes' accepting a first argument of type
'RouteCollection' could be found.
如果您想在早于 MVC 5 的 MVC 版本中使用属性路由,请安装 AttributeRouting
包,然后使用 AddRoutesFromController()
方法将控制器名称添加到 RegisterRoutes
方法内的路由配置中( ControllerName
属于任何控制器 class name):
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapAttributeRoutes(config =>
{
config.AddRoutesFromController<ControllerName>();
});
}
然后,您可以使用类似于 MVC 5 时尚的 RouteAttribute
(和 RoutePrefixAttribute
):
[RoutePrefix("Cars")]
public class CarsController : Controller
{
[Route("Cars/Index")]
public ActionResult Index()
{
// do something
}
}
您可以找到 AttributeRouting
包使用的详细信息 here。
我尝试在 MVC4 上创建一个控制器 我需要特殊属性的链接 所以当我打开 RouteConfig.cs 我找不到这个: routes.MapMvcAttributeRoutes(); 并给我一个错误。 那么我如何为 MVC 4 上的每个控件和操作设置一个特殊属性
MapMvcAttributeRoutes()
扩展方法仅在 MVC 版本 5 或更高版本中可用,因为 RouteCollectionAttributeRoutingExtensions
class 在以前的版本中不存在。在 MVC 4 或更低版本中使用该方法将显示此错误:
'RouteCollection' does not contain a definition for 'MapMvcAttributeRoutes' and no extension method 'MapMvcAttributeRoutes' accepting a first argument of type 'RouteCollection' could be found.
如果您想在早于 MVC 5 的 MVC 版本中使用属性路由,请安装 AttributeRouting
包,然后使用 AddRoutesFromController()
方法将控制器名称添加到 RegisterRoutes
方法内的路由配置中( ControllerName
属于任何控制器 class name):
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapAttributeRoutes(config =>
{
config.AddRoutesFromController<ControllerName>();
});
}
然后,您可以使用类似于 MVC 5 时尚的 RouteAttribute
(和 RoutePrefixAttribute
):
[RoutePrefix("Cars")]
public class CarsController : Controller
{
[Route("Cars/Index")]
public ActionResult Index()
{
// do something
}
}
您可以找到 AttributeRouting
包使用的详细信息 here。