我尝试创建满足以下两种情况的路线:
基本上我需要的是以下规则。但似乎系统总是期望locale参数,即使它是可选的。
[Route("{locale?}/[controller]/[action]")]
public class MyController : Controller
{
[Route("{id}")]
public IActionResult Action(int id) {
return View();
}
}
知道如何创建支持上述场景的规则吗?
答案 0 :(得分:0)
路线中的可选参数必须在最后。没有办法解决这个问题。但是,还有另一种方法可以处理它:只需添加多个路径:
[Route("{locale}/[controller]/[action]")]
[Route("[controller]/[action]")]
现在它将以任何一种方式做出回应。 FWIW,您可能要考虑为locale
param添加一些约束,因此它与所有不匹配。