關於Asp.net WebAPI自定義驗證並處理model,
阿新 • • 發佈:2018-11-17
獲取客戶端發來的資料方法:
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; }