如何在请求正文中更改参数名称?

时间:2019-02-18 02:33:49

标签: c# asp.net-web-api

我有这个模型'LoginModel'。

public class LoginModel
{
    public string UserName { get; set; }
    public string Pssd { get; set; }
}

我在控制器上使用此类,以便像这样从主体获取值。

public object CheckLogin([FromBody]LoginModel logModel){}

因此,要获取值,我必须将其放入请求中。

{
  "UserName": "username",
  "Pssd": "password"
}

我希望参数“ Pssd”为“ Password”,同时将Pssd保留为其方法名称。我已经尝试使用这些属性,但是仍然无法正常工作。当我在请求正文中将Pssd替换为Password时,其值将为null。

    [JsonProperty("Password")]
    [JsonProperty(PropertyName = "Password")]
    [Display(Name = "Password")]
    [DataMember(Name = "Password")]

我也尝试删除[FromBody],但仍然无法正常工作。

1 个答案:

答案 0 :(得分:0)

您是否尝试过[BindProperty(Name ="password")]

或尝试使用简单的字母'password'[JsonProperty(PropertyName = "password")]

工作样本。

[Route("test")]
[HttpPost]
public IActionResult Login([FromBody]LoginDto x)
{
    return Ok(x);
}

public class LoginDto
{

    public string UserName { get; set; }
    [Newtonsoft.Json.JsonProperty("password")]
    public string Pssd { get; set; }
}

请求

{
  "username": "test",
  "password": "test"
}

Content-Type →application/json; charset=utf-8