检查c#泛型类中的ModelState

本文关键字:ModelState 泛型类 检查 | 更新日期: 2023-09-27 18:07:42

我想在泛型类中验证我的模型类,因为我不想在输入时每次都检查每个方法。这里是我做了一个通用类,但ModelState.IsValid不工作。

public class Validator<T> where T : class
{
    public ApiResponse ValidateInput(T t)
    {
        try
        {
            if (t != null)
            {
                if (!ModelState.IsValid)
                {
                    return JsonResponse.GetResponse(ResponseCode.Failure, ModelState.Values.FirstOrDefault().Errors[0].ErrorMessage);
                }
            }
            else
            {
                return JsonResponse.GetResponse(ResponseCode.Failure, ErrorMessage.InvalidRequest);
            }
        }
        catch (Exception ex)
        {
            LogHelper.CreateLog(ex);
            return JsonResponse.GetResponse(ResponseCode.Exception, ErrorMessage.Oops);
        }
    }
}

ApiResponse是我为特定类型的响应所做的自定义类。

检查c#泛型类中的ModelState

这不是说ModelState不工作,而使用ModelState.IsValid方法,如果你的模型状态无效,它会抛出一个错误或做任何你决定做的。

返回null,因此使用else子句而不是ModelState检查的内部if。

至于为什么我不可能知道,因为你没有分享进一步的代码。