关于Asp.net WebAPI自定义验证并处理model,

获取客户端发来的数据方法:

protected virtual string GetRequestFromData()
        {
            HttpContextBase context = Request.Properties["MS_HttpContext"] as HttpContextBase;
            if (context == null) return string.Empty;
            StreamReader reader = new StreamReader(context.Request.InputStream);
            string data = reader.ReadToEnd();
            return data;
        }

解析数据我这里获取的到数据是json格式的:

string json = GetRequestFromData();
 T model=JsonConvert.DeserializeObject<T>(json);

自定义验证Model
引用:

using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
 protected bool ValidateModelState<T>(T model)
        {
            ValidationContext validationContext = new ValidationContext(model);
            ICollection<ValidationResult> errors = new List<ValidationResult>();
            bool result = Validator.TryValidateObject(model, validationContext, errors, true);
            foreach (ValidationResult error in errors)
            {
                foreach (string memberName in error.MemberNames)
                {
                    ModelState.AddModelError(memberName, error.ErrorMessage);
                }
            }
            return result;
        }

猜你喜欢

转载自blog.csdn.net/marshal1991415/article/details/84178617