【发布时间】:2013-07-01 17:12:09
【问题描述】:
我有两个动作,我希望我的路线 /users 和 /users/{id} 不同。但是它给我带来了错误。
是否有可能在不手动创建每个路由的情况下实现这种事情,我将拥有其他遵循类似模式的控制器,并且为所有这些控制器编写自定义路由通常看起来是多余的和坏主意。
错误
当前对控制器类型的操作“索引”请求 'UsersController' 在以下操作方法之间不明确: System.Web.Mvc.ActionResult Index() 类型 Api.Controllers.UsersController System.Web.Mvc.ActionResult Api.Controllers.UsersController 类型上的索引(Int32)
代码
public class UsersController : Controller
{
public ActionResult Index()
{
return null;
}
public ActionResult Index(int id)
{
return null;
}
}
【问题讨论】:
-
当你指定 /users/{id} 时你有 id = UrlParameter.Optional 吗?
-
@AlexeyAza 我设置了默认路由。如果我添加另一条删除
id = UrlParameter.Optional的路线,它不会改变任何东西。 -
@AlexeyAza 他们建议使用单独的操作或在控制器内部检查 id 是否为空。它并没有真正回答我想要实现的目标。也许没有办法解决这个问题。但是他们以某种方式在 WebAPI 中做到了这一点..
标签: c# asp.net-mvc rest asp.net-mvc-4 routes