web-dev-qa-db-ja.com

同じパラメータタイプで「作成」と呼ばれるメンバーをすでに定義しています

私には2つの方法があり、http動詞によって区別されます。

public class ProductImageController : Controller
{
     [HttpGet]
     public ViewResult Create(int productId)
          {
             return View(productId);
          }

      [HttpPost]
      public ViewResult Create(int productId)
          {
          }
}

しかし、エラーが発生します:

同じパラメータタイプで「作成」と呼ばれるメンバーをすでに定義しています

14
Mohammadreza

同じスコープ内に同じシグネチャを持つ複数のメソッド、つまり同じ戻り値の型とパラメータ型を含めることはできません。

編集-これを使用する必要があるようです: 関連する質問

public class ProductImageController : Controller
{
     [HttpGet]
     public ViewResult Create(int productId)
     {
         return View(productId);
     }

    [HttpPost]
    [ActionName("Create")]
    public ViewResult CreatePost(int productId)
    {
        //return a View() somewhere in here
    }
}
26
Chris L

アクション後の方法を次のように変更します。

[HttpPost]
public ViewResult Create(FormCollection formValues)
{
       var productId = formValues["productId"];
}

OR

[HttpPost]
public ViewResult Create(int  productId, FormCollection formValues)
{
 //still using productId, formValues is just an additional parameter 
 //that doesn't need to be implemented.
}
3
Lin