首页 文章

方法重载与路由[重复]

提问于
浏览
-2

这个问题在这里已有答案:

我想在控制器中编写两个具有相同名称和不同参数的函数,如下所示 .

[Route("Home/index")]
public JsonResult index()
{
    return new JsonResult {Data = 'test1'};
}

[Route("Home/index/{id}")]
public JsonResult index(id)
{
    return new JsonResult {Data = 'test2'};
}

但是我得到了以下错误 .

控制器类型'HomeController'上的当前动作'index'请求在以下操作方法之间是不明确的:System.Web.Mvc.JsonResult index()类型为application.Controllers.HomeController System.Web.Mvc.JsonResult index(int )类型application.Controllers.HomeController

2 回答

  • 0

    我找到了解决方案 . 代码正在运行,但需要在RouteConfig.cs中插入以下代码 .

    routes.MapMvcAttributeRoutes();
    
  • 0

    你可以定义多条路线

    [Route("index")]
    [Route("index/{id}")]
    public JsonResult index(int id = null)
    {
    
        if(id.HasValue()){
          return new JsonResult {Data = 'test2'};
        }
    
        return new JsonResult {Data = 'test1'};
    }
    

相关问题