如何为具有字符串参数的POST函数的URL提供参数?

时间:2019-05-31 20:04:08

标签: c# asp.net-mvc http

我将ASP.NET Core用于Web API,并创建了POST函数,但不知道如何在URL中传递字符串“名称”,以便该函数可以返回正确的字符串。

网址应类似于:

https://localhost/44320/api/list/test/...something传递名称...

//This is in my Controller class
[HttpPost("test/{name}")]
public string PostTest(string name)
{
    return "Name: " + name;
}

返回值不言自明,但是当我这样做时,我只会收到405错误 https://localhost:44320/api/list/test/bob/

尽管我只是执行GET并执行所有操作都会打印文本,但是它可以正常工作。

2 个答案:

答案 0 :(得分:0)

确保控制器外观如下:

[Route("api/[controller]")]
public class ListController : Controller
{        
    [HttpPost("test/{name}")]
    public string Post([FromRoute] string name)
    {
        return "Name: " + name;
    }
}

return语句上放置一个断点,调试应用程序,然后使用以下命令向其发送POST请求:https://localhost:44320/api/list/test/bob

name应该包含值bob

编辑:这是上面的工作屏幕截图,尽管localhost端口明显不同。

successful-post-api-call

答案 1 :(得分:0)

尝试这样:

[HttpPost]
[Route("test/{name}")]