Asp Net Mvc Routing 不对多个控制器进行操作
Asp Net Mvc Routing without action on multiple Controllers
我的 Asp Net MVC 应用程序包含 4 个控制器:
主页 |培训 |饮食 |配置
routes.MapRoute(
name: "Default",
url: "{action}/{id}",
defaults: new { controller = "Home", action = "Authorize", id = UrlParameter.Optional }
);
当我想执行 `RedirectToAction("Configurator","Configuration") 时,它告诉我找不到路由。 Picture
我尝试添加不同类型的路线,但我从未实现以下情况:
我只希望 URL 不包含控制器名称:
所以而不是:
之前:https:///localhost/Home/Login
之后:https:///localhost/Login
还有
之前:https:///localhost/Diet/DailyData
之后:https:///localhost/DailyData
我在每个控制器中都有很多方法,所以我不想为每个方法都设置一个路由。
这可能吗?如何实现?
先谢谢你了!
在 IgnoreRoutes 之后添加到 RouteConfig
routes.IgnoreRoute(“{resource}.axd/{*pathInfo}”);
routes.MapMvcAttributeRoutes();
之后你可以使用路由属性并添加到每个控制器的顶部
[Route("[action]")]
public class HomeController : ControllerBase
[Route("[action]")]
public class TrainingController : ControllerBase
....
您只需添加 4 个属性 - 每个控制器一个。
并且return默认路由到它的默认
routes.MapRoute(
name: “Default”,
url: “{controller}/{action}/{id}”,
defaults: new { controller = “Home”, action = “Index”, id = UrlParameter.Optional
最好不要碰它。像这样设置你的默认路线
[Route("[action]")]
public class HomeController : ControllerBase
{
[Route("~/Authorize")]
[Route("~/Home/Index")]
public IActionResult Authorize()
我的 Asp Net MVC 应用程序包含 4 个控制器: 主页 |培训 |饮食 |配置
routes.MapRoute(
name: "Default",
url: "{action}/{id}",
defaults: new { controller = "Home", action = "Authorize", id = UrlParameter.Optional }
);
当我想执行 `RedirectToAction("Configurator","Configuration") 时,它告诉我找不到路由。 Picture
我尝试添加不同类型的路线,但我从未实现以下情况:
我只希望 URL 不包含控制器名称:
所以而不是:
之前:https:///localhost/Home/Login
之后:https:///localhost/Login
还有
之前:https:///localhost/Diet/DailyData
之后:https:///localhost/DailyData
我在每个控制器中都有很多方法,所以我不想为每个方法都设置一个路由。 这可能吗?如何实现?
先谢谢你了!
在 IgnoreRoutes 之后添加到 RouteConfig
routes.IgnoreRoute(“{resource}.axd/{*pathInfo}”);
routes.MapMvcAttributeRoutes();
之后你可以使用路由属性并添加到每个控制器的顶部
[Route("[action]")]
public class HomeController : ControllerBase
[Route("[action]")]
public class TrainingController : ControllerBase
....
您只需添加 4 个属性 - 每个控制器一个。
并且return默认路由到它的默认
routes.MapRoute(
name: “Default”,
url: “{controller}/{action}/{id}”,
defaults: new { controller = “Home”, action = “Index”, id = UrlParameter.Optional
最好不要碰它。像这样设置你的默认路线
[Route("[action]")]
public class HomeController : ControllerBase
{
[Route("~/Authorize")]
[Route("~/Home/Index")]
public IActionResult Authorize()