【问题标题】:method overloading with routing [duplicate]使用路由重载方法[重复]
【发布时间】:2016-10-25 09:40:43
【问题描述】:

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

[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' 在以下操作方法之间不明确: System.Web.Mvc.JsonResult index() 类型 application.Controllers.HomeController System.Web.Mvc.JsonResult 类型 application.Controllers.HomeController 上的 index(int)

【问题讨论】:

    标签: c# asp.net-mvc asp.net-mvc-routing overloading


    【解决方案1】:

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

    routes.MapMvcAttributeRoutes();
    

    【讨论】:

      【解决方案2】:

      你可以定义多条路线怎么样

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

      【讨论】:

      • 我想了解方法重载。我已经找到并回答了。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-28
      • 2014-05-26
      • 1970-01-01
      • 1970-01-01
      • 2018-02-17
      • 1970-01-01
      相关资源
      最近更新 更多