2016-06-23 10 views
-2

以下のように、コントローラに同じ名前と異なるパラメータを持つ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」にアクション「インデックス」の現在の要求は、次のアクションメソッド間の曖昧である:タイプ application.Controllers.HomeControllerシステムに System.Web.Mvc.JsonResultインデックス()。 Web.Mvc.JsonResult タイプapplication.Controllerers.HomeControllerのインデックス(int)

答えて

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'}; 
} 
+0

私は、メソッドのオーバーロードについて知りたいです。 私はすでに見つけて答えました。 –

関連する問題