14

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

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

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

但得到错误:

已经使用相同的参数类型定义了一个名为“Create”的成员

4

2 回答 2

27

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

编辑-看起来你需要使用这个:相关问题

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
    }
}
于 2013-11-18T08:49:27.410 回答
3

更改 post 操作方法,如下所示:

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

或者

[HttpPost]
public ViewResult Create(int  productId, FormCollection formValues)
{
 //still using productId, formValues is just an additional parameter 
 //that doesn't need to be implemented.
}
于 2013-11-19T00:20:46.450 回答