给出以下两个网址:
如何将网址的活动/非活动部分映射到布尔操作方法参数,active为true,非活动为false?
[Route("employee/list")]
public ActionResult List(bool? active = null)
答案 0 :(得分:3)
枚举是一种正确的方法,因为它允许您在将来轻松添加新状态:
[Route("employee/list/{status}")]
public ActionResult List(status status)
{
...
}
public enum status { active, inactive }
<小时/> 尽管基于单一责任原则,我更喜欢这样一个更简单的解决方案:
[Route("employee/list/active")]
public ActionResult ListActive()
{
return List(true);
}
[Route("employee/list/inactive")]
public ActionResult ListInactive()
{
return List(false);
}
public ActionResult List(status status)
{
...
}
答案 1 :(得分:1)
我重写它以使用字符串,所以它的工作原理如下:
[Route("employee/list")]
[Route("employee/list/{active}")]
public ActionResult List(string active ="both")
{
///Stuff happens here
}
如果您需要参数是可选的,添加第一个无参数路由非常重要。
更新:此路线也有效
[Route("employee/list/{active='both'}")]