gpt4 book ai didi

c# - 有没有办法验证在 web api Controller 中创建的模型?

转载 作者:太空狗 更新时间:2023-10-30 00:49:07 24 4
gpt4 key购买 nike

我有一个 Controller ,其中我的 PUT 方法使用 multipart/form-data 作为内容类型,因此我在 Controller 内获取 JSON 和映射类。

有没有一种方法可以根据我在 Controller 内部时在模型类中编写的注释来验证此模型?

public class AbcController : ApiController
{
public HttpResponseMessage Put()
{
var fileForm = HttpContext.Current.Request.Form;
var fileKey = HttpContext.Current.Request.Form.Keys[0];
MyModel model = new MyModel();
string[] jsonformat = fileForm.GetValues(fileKey);
model = JsonConvert.DeserializeObject<MyModel>(jsonformat[0]);
}
}

我需要在 Controller 中验证“模型”。仅供引用,我已向 MyModel() 添加了必需的注释。

最佳答案

手动模型验证:

using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;

class ModelValidator
{
public static IEnumerable<ValidationResult> Validate<T>(T model) where T : class, new()
{
model = model ?? new T();

var validationContext = new ValidationContext(model);

var validationResults = new List<ValidationResult>();

Validator.TryValidateObject(model, validationContext, validationResults, true);

return validationResults;
}
}

关于c# - 有没有办法验证在 web api Controller 中创建的模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40399767/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com