我正在学习ASP.Net MVC 5的基础知识。我想使用SecurityController
向Advanced rest Client
中出现的控制器操作发出POST请求。但我无法这样做。请指导我。
以下是我的尝试:
[HttpPost]
public ActionResult Hello(SampleMV viewModel)
{
return Content("Hello");
}
public class SampleMV
{
public int one { get; set; }
public int two { get; set; }
public int? three { get; set; }
}
现在我需要在Advanced Rest Client中进行哪些更改?
步骤1.将请求下拉列表设置为POST
步骤2.在我明确添加的原始有效负载部分中:
one = 2, two = 3, three = 4 seperated by comma.
我不确定这是否正确。
步骤3.我是否需要放置一些内容类型或任何其他配置。目前,我收到的错误为Resource not found
。
以下是截图:
答案 0 :(得分:4)
您的有效负载格式不正确,JSON中的对象定义应为{ "one":2, "two":3, "three":4 }
答案 1 :(得分:4)
404表示您遇到路由问题。它与有效载荷无关,因为它不会以任何方式对路径做出贡献。假设此方法为SecurityController.Hello
,并且您正在使用默认路由,则对/security/hello
的请求应该转到正确的位置。因此,在您的问题中包含RouteConfig.cs可能会有所帮助。
此外,如果您正在使用ApiController
,我认为操作名称必须遵循以请求方法开头的惯例。换句话说,您的Hello
操作需要命名为PostHello
。
一旦您对路由进行了排序,现在,您将请求正文作为JSON的方式应该可以正常工作。为了将来参考,“raw”需要是application / x-www-form-urlencoded,即one=1&two=2&three=3