B Z*_*B Z 4 c# asp.net-core-mvc asp.net-core asp.net-core-routing asp.net-core-mvc-2.0
使用基于属性的路由我想匹配以下路由:
~/ ~/Home ~/Home/Index
到HomeController.Index,这条路线:
~/Home/Error
到HomeController.Error.这是我的配置:
[Route("[controller]/[action]")]
public class HomeController : Controller {
[HttpGet, Route(""), Route("~/")]
public IActionResult Index() {
return View();
}
[HttpGet]
public IActionResult Error() {
return View();
}
}
Run Code Online (Sandbox Code Playgroud)
我试过添加Route("[action]"),Route("Index")和其他组合,但仍然没有得到匹配:
/Home/Index
Rac*_*lan 10
空路由Route("")与控制器上的路由组合,用于Route("/")覆盖它而不是与它组合:
[Route("[controller]/[action]")]
public class HomeController : Controller {
[HttpGet]
[Route("/")]
[Route("/[controller]")]
public IActionResult Index() {
return View();
}
[HttpGet]
public IActionResult Error() {
return View();
}
}
Run Code Online (Sandbox Code Playgroud)
或者,您可以删除/[action]控制器,这使它更容易(不需要覆盖),但是您必须在每个操作上定义路由.
我假设您有意使用属性路由而不是传统路由,因此上述答案就是您所需要的.但是,如果假设错误,可以通过简单的传统路由轻松实现:
routes.MapRoute("default", "{controller=Home}/{action=Index}/{id?}");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2194 次 |
| 最近记录: |