如何在asp.net mvc中使用请求体

时间:2013-06-25 18:09:02

标签: asp.net asp.net-mvc asp.net-mvc-3 rest json.net

我是第一次在ASP.NET MVC中做一个小项目。我被要求创建一个执行以下操作的REST API:

  • 接受“/json/party/:accomodation/join”的POST请求,其中:accomodation是一个ID

我已经弄清楚如何让我的API处理:accomodation参数的解析。我只是想不通如何阅读请求体。例如,我的API消费者希望使用以下请求正文发布到此URL:

 { "user": 
    { 
        "name": "Hans van Dam",
        "email": "hans@test.nl",
        "straat": "Test street",
        "nummer": "10",
        "woonplaats": "Amsterdam",
        "telefoon": "0687217612",
        "newsletter": true
    },
    "party": {
        "rsvp": 1
        "time": 1370941687
    }
 }

现在我需要读取此请求主体,并将其解析回对象。我怎么能在ASP.NET MVC中做到这一点?

1 个答案:

答案 0 :(得分:3)

MVC和Web API使用“模型绑定器”来解析请求并为控制器上调用的操作方法提供参数。要接受请求正文,您只需要对您期望的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; }
}

然后在你的控制器中:

public HttpResponseMessage MyApiEndpoint(string accommodation, JoinRequest joinRequest)
{
    // use joinRequest, i.e.
    // joinRequest.User.Name
}