我第一次在 ASP.NET MVC 中做一个小项目。我被要求创建一个执行以下操作的 REST API:
- 接受“
/json/party/:accomodation/join
”上的 POST 请求,其中 :accomodation 是 ID
我已经弄清楚如何让我的 API 处理 :accomodation 参数的解析。我只是不知道如何读取请求正文。例如,我的 API 使用者希望使用以下请求正文发布到此 URL:
{ "user":
{
"name": "Hans van Dam",
"email": "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="1f777e716c5f6b7a6c6b317173" rel="noreferrer noopener nofollow">[email protected]</a>",
"straat": "Test street",
"nummer": "10",
"woonplaats": "Amsterdam",
"telefoon": "0687217612",
"newsletter": true
},
"party": {
"rsvp": 1
"time": 1370941687
}
}
现在我需要读取这个请求正文,并将其解析回对象。如何在 ASP.NET MVC 中执行此操作?
最佳答案
MVC 和 Web API 使用“modelbinder”来解析请求并向 Controller 上调用的操作方法提供参数。要接受请求正文,您只需对所需的 JSON 进行建模,并将其用作操作方法的参数。
public class User
{
public string Name { get; set; }
// etc
}
public class Party
{
public bool Rsvp { get; set; }
// etc
}
public class JoinRequest
{
public User User { get; set; }
public Party Party { get; set; }
}
然后在你的 Controller 中:
public HttpResponseMessage MyApiEndpoint(string accommodation, JoinRequest joinRequest)
{
// use joinRequest, i.e.
// joinRequest.User.Name
}
关于asp.net - 如何在asp.net mvc中使用请求体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17304509/