已经定义了一个名为'Create'的成员,它具有相同的参数类型

时间:2013-11-18 08:43:15

标签: asp.net-mvc httpverbs

我有两种方法,不同的是http动词:

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

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

但获取错误:

  

已经使用相同的参数类型

定义了一个名为“Create”的成员

2 个答案:

答案 0 :(得分:24)

在同一范围内不能有多个具有相同签名的方法,例如相同的返回类型和参数类型。

编辑 - 看起来你需要使用它:Related question

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
    }
}

答案 1 :(得分:3)

更改后面的操作方法:

[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.
}