首页 > 解决方案 > 在 asp.net 核心控制器中获取“请求有效负载”

问题描述

在客户端,我做

$.ajax({
    url: '/emplacements/keyexist',
    type: "POST",
    data: JSON.stringify(postData),
    dataType: "json",
    traditional: true,
    contentType: "application/json; charset=utf-8",

但是操作方法中的值始终为“空”

[AcceptVerbs("GET", "POST")]
public IActionResult KeyExist(
    string nom,            //[Bind(Prefix = nameof(EmplacementDTO.Nom))],
    int id                 //[Bind(Prefix = nameof(EmplacementDTO.Id))]
)
{
    // nom == null
    // id == 0

在此处输入图像描述 如何解决?

标签: c#asp.net-core-mvctelerik-grid.net-5remote-validation

解决方案


首先为您的有效载荷制作一个模型,如下所示。

public class MyPayload
{
    public string Nom{ get; set; }

    public int Id { get; set; }
}

在你的控制器Action方法里面

public IActionResult KeyExist([FromBody] MyPayload payload)

[FromBody]如果属性名称匹配,将自动映射请求正文。

并且您的ajax电话还有另一个问题是您发送IdasstringController期望int


推荐阅读