asp.net mvc 获取json对象

可以用三种常见方式。注意:请求必须带 Content-Type: application/json。

ASP.NET Core MVC(推荐)——模型绑定到请求体,使用 [FromBody](复杂类型默认可绑定):

// POST /api/person
public class Person { public string Name { get; set; } public int Age { get; set; } }

[ApiController]
[Route("api/[controller]")]
public class PersonController : ControllerBase
{
    [HttpPost]
    public IActionResult Create([FromBody] Person person)
    {
        if (person == null) return BadRequest();
        // 处理 person
        return Ok(person);
    }
}

经典 ASP.NET MVC(非 Core)——读取请求流并反序列化(或注册 JsonValueProviderFactory):

// 读取流并用 Json.NET 反序列化
[HttpPost]
public ActionResult Create()
{
    Request.InputStream.Position = 0;
    using var sr = new StreamReader(Request.InputStream);
    var json = sr.ReadToEnd();
    var person = JsonConvert.DeserializeObject<Person>(json);
    // 处理 person
    return Json(person);
}

ASP.NET Web API(自动从 body 绑定复杂类型):

public class PersonController : ApiController
{
    public IHttpActionResult Post(Person person)
    {
        if (person == null) return BadRequest();
        return Ok(person);
    }
}

 

posted on 2026-01-10 23:47  漫思  阅读(6)  评论(0)    收藏  举报

导航