当我们以序列化字符串的形式接收模型时,我不确定如何在Web API中验证模型。

我在模型上使用DataAnnotations进行验证,通常这样做:

public IHttpActionResult Save([FromBody] IEnumerable<User> users)
{
    if (!ModelState.IsValid)
    {
        return BadRequest(ModelState);
    }

    // ...
}


在这种特定情况下,“模型”来自序列化的字符串:

public IHttpActionResult Save()
{
    string Data = HttpContext.Current.Request.Form["Data"];
    IEnumerable<User> users = JsonConvert.DeserializeObject<IEnumerable<User>>(Data);

    // ...
}


我怎么可能验证这一点?

最佳答案

按照上面的示例:

        // Validate
        Validate<List<User>>(user);

        if (!ModelState.IsValid)
        {
            return new InvalidModelStateResult(ModelState, true, new DefaultContentNegotiator(), Request, new MediaTypeFormatter[] { new JsonMediaTypeFormatter() }); // Force JSON
        }


谢谢。

关于c# - Web API验证序列化的字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23296854/

10-15 00:56
查看更多