检查通用类C#中的ModelState

时间:2016-09-19 09:48:37

标签: c# asp.net-mvc model-view-controller

我想在泛型类中验证我的模型类,因为我不想在输入时每次检查每个方法。这是我制作了一个通用类,但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是我为特定类型的响应制作的自定义类。提前谢谢。

1 个答案:

答案 0 :(得分:0)

并非ModelState不起作用,如果您的模型状态无效,则使用ModelState.IsValid方法时,它会抛出错误或做您想做的任何事情。

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

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