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); } }
漫思
浙公网安备 33010602011771号