Asp.net core mvc 如何将所有请求路由到HomeController
我想将所有请求(不包括少数例外情况)路由到我的HomeController 因此,无论我是转到Asp.net core mvc 如何将所有请求路由到HomeController,asp.net-core-mvc,Asp.net Core Mvc,我想将所有请求(不包括少数例外情况)路由到我的HomeController 因此,无论我是转到/home/index还是/about/或/sport/soccer,它都会指向主控台(但URL仍保留在浏览器中,因此我不想使用重定向) 装饰控制器最初是可行的,但它不允许出现异常 [Route("{*url}")] public async Task<IActionResult> Index() 如果您只需要一个操作(例如索引),则可以尝试为操作设置路由: public class Ho
/home/index
还是/about/
或/sport/soccer
,它都会指向主控台(但URL仍保留在浏览器中,因此我不想使用重定向)
装饰控制器最初是可行的,但它不允许出现异常
[Route("{*url}")]
public async Task<IActionResult> Index()
如果您只需要一个操作(例如索引),则可以尝试为操作设置路由:
public class HomeController
{
[Route("{*url}")]
public IActionResult Index(string url)
{
}
}
如果您的异常只有这两种情况,那么您可以将
regex
条件添加到[Route(“{*url}”)]
的属性中以确定
public class HomeController : Controller
{
[Route("{*url:regex(^(?!Error$|MySecret$).*$)}")]
public IActionResult Index()
{
}
}
以下是测试结果:
这很好,但似乎不允许任何例外。正如我在OP中所写,我仍然希望定义一个ErrorController(或route)
public class HomeController : Controller
{
[Route("{*url:regex(^(?!Error$|MySecret$).*$)}")]
public IActionResult Index()
{
}
}