默认属性路由不起作用
Default attribute route does not work
我有一个控制器,想在上面定义默认路由,如下所示:
public class SignInController : Controller
{
[Route("", Name = "Default")]
public ActionResult Index()
{
return View();
}
}
关于RoutingConfig
我注释掉了MapRoute
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
/*routes.MapRoute("Default", "{controller}/{action}/{id}",
new {controller = "SignIn", action = "Index", id = UrlParameter.Optional}
);*/
}
当我开始服务器时,我有:
HTTP Error 403.14 - Forbidden The Web server is configured to not list
the contents of this directory.
我做错了什么?
您正在执行属性路由但缺少配置...
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapMvcAttributeRoutes();
/*routes.MapRoute("Default", "{controller}/{action}/{id}",
new {controller = "SignIn", action = "Index", id = UrlParameter.Optional}
);*/
}
...这将为应用程序映射属性定义的路由。
此外,如果您要使用属性路由,您可能需要为您的控制器设置路由前缀。
[RoutePrefix("SignIn")]
public class SignInController : Controller
{
//eg: GET signin/
[Route("", Name = "Default")]
public ActionResult Index()
{
return View();
}
}
如果您希望 SignInController.Index
映射到您的根,则将 RoutePrefix
设置为 ""
(空字符串)
我有一个控制器,想在上面定义默认路由,如下所示:
public class SignInController : Controller
{
[Route("", Name = "Default")]
public ActionResult Index()
{
return View();
}
}
关于RoutingConfig
我注释掉了MapRoute
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
/*routes.MapRoute("Default", "{controller}/{action}/{id}",
new {controller = "SignIn", action = "Index", id = UrlParameter.Optional}
);*/
}
当我开始服务器时,我有:
HTTP Error 403.14 - Forbidden The Web server is configured to not list the contents of this directory.
我做错了什么?
您正在执行属性路由但缺少配置...
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapMvcAttributeRoutes();
/*routes.MapRoute("Default", "{controller}/{action}/{id}",
new {controller = "SignIn", action = "Index", id = UrlParameter.Optional}
);*/
}
...这将为应用程序映射属性定义的路由。
此外,如果您要使用属性路由,您可能需要为您的控制器设置路由前缀。
[RoutePrefix("SignIn")]
public class SignInController : Controller
{
//eg: GET signin/
[Route("", Name = "Default")]
public ActionResult Index()
{
return View();
}
}
如果您希望 SignInController.Index
映射到您的根,则将 RoutePrefix
设置为 ""
(空字符串)