ASP.NET Core MVC 1.0多个post方法在一个Controller中

Aha*_*kar 2 asp.net-core-mvc dnx asp.net-core

我可以使用此代码执行此操作:

    [HttpPost("SampleRoute1")]
    public JsonResult Post([FromBody]SampleModel1 value)
    {
        .....Functionone.....
        return Json("");
    }

    [HttpPost("SampleRoute2")]
    public JsonResult Post([FromBody]SampleModel2 value)
    {
        .....Functiontwo.....
        return Json("");
    }
Run Code Online (Sandbox Code Playgroud)

但我不能这样做:

    [HttpPost("SampleRoute1")]
    public JsonResult Post([FromBody]SampleModel1 value)
    {
        .....Functionone.....
        return Json("");
    }

    [HttpPost("SampleRoute2")]
    public JsonResult Post([FromBody]SampleModel1 value)
    {
        .....Functiontwo.....
        return Json("");
    }
Run Code Online (Sandbox Code Playgroud)

它给出错误" 类型''Controller1'已经定义了一个名为'Post'的成员,它具有相同的参数类型 "

那么有什么方法可以让一个控制器中的两个Post具有相同的参数但具有不同的路径?

像这样 :

发布(SampleModel1)=>"Controller1\SampleRoute1"=>执行Function1

发布(SampleModel1)=>"Controller1\SampleRoute2"=>执行Function2

Mar*_*ich 8

是的,你可以这样做.问题是你试图在一个具有相同名称和参数的类中有两个方法,而这是不可能的.您应该将方法的名称更改为不同的名称.

请注意,操作名称和Post请求类型已在HttpPost属性中指定,因此您不必依赖方法名称.

[HttpPost("SampleRoute1")]
public JsonResult Aaa([FromBody]SampleModel1 value)
{
    .....Functionone.....
    return Json("");
}

[HttpPost("SampleRoute2")]
public JsonResult Bbb([FromBody]SampleModel1 value)
{
    .....Functiontwo.....
    return Json("");
}
Run Code Online (Sandbox Code Playgroud)