Sta*_*tan 6 c# rest asp.net-mvc routes asp.net-mvc-4
我有两个动作,我想要我的路线/users和/users/{id}不同.但它会引发我的错误.
是否有可能实现这种排序而无需手动创建每个路径,我将有其他控制器将遵循类似的模式,并为所有这些编写自定义路线似乎是多余的和一般的坏主意.
控制器类型'UsersController'上的当前操作请求'Index'在以下操作方法之间是不明确的:System.Web.Mvc.ActionResult类型Api.Controllers.UsersController上的Index()System.Web.Mvc.ActionResult索引(Int32)在类型Api.Controllers.UsersController上
public class UsersController : Controller
{
public ActionResult Index()
{
return null;
}
public ActionResult Index(int id)
{
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
你需要一个ActionMethodSelector:
public class RequiresParameterAttribute : ActionMethodSelectorAttribute {
readonly string parameterName;
public RequiresParameterAttribute(string parameterName) {
this.parameterName = parameterName;
}
public override bool IsValidForRequest(ControllerContext controllerContext, MethodInfo methodInfo) {
return controllerContext.RouteData.Values[parameterName] != null;
}
}
Run Code Online (Sandbox Code Playgroud)
和控制器:
public class UsersController : Controller
{
public ActionResult Index()
{
return null;
}
[RequiresParameter("id")]
public ActionResult Index(int id)
{
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
我不确定以上是否可行,但应该给你一个想法。
| 归档时间: |
|
| 查看次数: |
5404 次 |
| 最近记录: |