后台:ModelState.AddModelError("userPwd", "请输入密码!")...; ModelState是一个字典类型,这句话的作用是向ModelState中添加一条错误信息,第一个参数是Key,第二个参数是Value。...前台:Html.ValidationMessage(key) 或 Html.ValidationSummary() 来显示 对于什么时候使用ModelState.AddModelError(模型错误..._localizationService.GetResource("Event.EventRegister.No_NowEvent"); //进行语言转换 ModelState.AddModelError...hadPhoneNumber = _localizationService.GetResource("Event.EventRegister.PhoneNumber"); ModelState.AddModelError
其中一位园友提到了说可以使用MVC的ModelState,因为之前通常都在Web项目中用没在Api项目用过,想想Api方法接收的多参数都封装成了一个实体类,独立于数据Model层,这样其实很方便用ModelState...认识ModelState 我们都知道在MVC中使用ModelState实现表单验证非常简单,借助jquery.validate.unobtrusive这个插件就能轻松的在页面上输出错误信息,详细的介绍可以参考这篇文章...再看看ModelState类型是个什么鬼: [Serializable] public class ModelState { // Fields private ModelErrorCollection...(var key in ModelState.Keys) { var state = ModelState[key];...(var key in modelState.Keys) { var state = modelState[key];
ModelState 我理解的ModelState是微软在ASP.NET MVC中提出的一种新机制,它主要实现以下几个功能: 1....微软的一种DRY(Don't Repeat Yourself)设计,通过ModelState可以做服务端验证,同时可以配合jquery validation生成前端数据验证。 ...但是在Web API里面,ModelState的主要功能就只剩下第2点了。 需要注意的是,ModelState一般只做输入验证,一些其他的业务验证还有要在特定的地方进行处理。...ModelState.IsValid) { return BadRequest(ModelState); } return CreatedAtRoute...ModelState.IsValid) //{ // return BadRequest(ModelState); //} return
ModelState.IsValid) { return BadRequest(ModelState); }...只要其中有一个验证没通过, 那么ModelState.IsValid属性就是False. 可以设置断点查看ModelState里面都有哪些东西....ModelState.IsValid) { return BadRequest(ModelState); }...ModelState.IsValid) { return BadRequest(ModelState); }...我们做了ModelState检查, 但是为什么没有验证出来呢?
) 27: { 28: Response.Write(key + ""); 29: ModelState modelState...我们知道输出的ModelState的值是在Model绑定过程中通过ValueProvider提供的,而伴随着Model绑定的验证则会根据验证的结果对ModelState的ModelError进行设置。...在该方法执行过程中,如果具有相同Key的ModelState对象存在,那么被添加的ModelError将会直接添加到它的Errors集合中;否则会添加一个新的ModelState并将添加的ModelError...>, 3: IEnumerable>, IEnumerable...在Action方法Index中,我们通过调用当ModelState属性的AddModelError方法认为地添加三个错误消息,对应的ModelState名称与作为Model的Contact类型的属性名称一致
ModelMetadata = propertyMetadata, ModelName = fullPropertyKey, ModelState...= bindingContext.ModelState, ValueProvider = bindingContext.ValueProvider...modelState = bindingContext.ModelState[fullPropertyKey]; if (modelState == null || modelState.Errors.Count..., displayName); modelState.Errors.Remove(error);...modelState.Errors.Add(errorMessage); break; }
传入匿名方法,并且配置错误警告的详细信息 var problemDetails = new ValidationProblemDetails(context.ModelState...TryValidateModel(ModelState)) { return ValidationProblem(ModelState...EmployeeUpdateDto>(employeeEntity); // 使用 patchDoucument ,将请求传递的参数传递给 dto 类 // 传递第二个参数,ModelState...,则可以都请求传递的数据进行数据验证 patchDocument.ApplyTo(dtoToPatch, ModelState); // TryValidateModel...TryValidateModel(dtoToPatch)) { return ValidationProblem(ModelState);
ModelState.IsValid) { foreach (var item in ModelState.Values)...context.ModelState.IsValid) { var result = context.ModelState.Keys....SelectMany(key => context.ModelState[key].Errors.Select(x => new ValidationError(key, x.ErrorMessage...) { Code = 422; Message = "参数不合法"; Result = modelState.Keys...context.ModelState.IsValid) { context.Result = new ValidationFailedResult(context.ModelState
StackOverflow上也有对这个问题的描述http://stackoverflow.com/questions/1775170/asp-net-mvc-modelstate-clear 闲话少说,...如下所示,当InputHelper在指定表单元素值得时候,会先从当前ModelState中获取,如果该值在ModelState中不存在,才会从当前ViewData中获取。...对于本例来说,ModelState中的值是原始值,ViewData的值采用修改后的值。...其实我觉得严格来说也是无奈之举吧, 拿Update场景来说 比如说Model里面的某个Property可能是Int的,但是你传入的Form值却可能是任意的字符串,这时后台ModelState.IsValid...所以这个角度看来ModelState的优先级是比较高的。 [你总不能回显一个0,然后错误提示“你输入的不是数值类型”吧]
ModelState.IsValid) { return Page(); } _context.Attach(Movie).State = EntityState.Modified...那么我们看看怎么直接读取这个文本文件; public static async Task ProcessFormFile(IFormFile formFile, ModelStateDictionary modelState...= "text/plain") { modelState.AddModelError(formFile.Name, $"The {fieldDisplayName...调用上面方法的代码如下: var publicScheduleData = await FileHelpers.ProcessFormFile(FileUpload.UploadPublicSchedule, ModelState...); 其中ModelState是PageModel特有的属性 在本示例中,用于给页面添加错误信息~
Confirm { get; set; } } 添加了对应的验证标记之后, ASP.NET WebAPI 在参数绑定时会根据验证标记做相应的检查, 并将检查结果放在 ApiController 的 ModelState...ApiController { [HttpPost] public IHttpActionResult Register(RegisterModel model) { if (ModelState.IsValid...return Ok(model.Username); } return BadRequest(ModelState); } } 如果我们只输入用户名, 没有输入密码和确认密码...", "ModelState": { "model.Password": ["The Password field is required."], "model.Confirm
自动模型状态验证 这个是重点,框架会帮你自动验证model的state,也就是ModelState....他内部会检查ModelState是否为Valid,如果为InValid会直接返回400 BadRequest,这样就没有必要执行后面的代码,提高效率。...) //判断状态 { return BadRequest(ModelState); } //其他代码。。。...Controller { [HttpPost("")] public IActionResult PostBook(Book book) { //直接写,不用验证modelstate...options.InvalidModelStateResponseFactory = actionContext => { var errors = actionContext.ModelState
code var fluent = mvvmContext.OfType(); fluent.SetBinding(check, e => e.CheckState, x => x.ModelState..., modelState => { // Convert the ViewModel.State to CheckState switch(modelState) { case ViewModel.State.Active...return ViewModel.State.Suspended; } }); //ViewModel code public class ViewModel { public virtual State ModelState...mvvmContext.OfType(Of ViewModel)() fluent.SetBinding(check, Function(e) e.CheckState, Function(x) x.ModelState..., Function(modelState) Select Case modelState Case ViewModel.State.Active [Return] CheckState.Checked
二.Action过滤器实现统一验证 我们在判断验证状态时一般会在Action里判断ModelState.IsValid是否为true。...public IActionResult Create([FromBody]CreateOrderDto dto) { if(ModelState.IsValid) {...context.ModelState.IsValid) { XcHttpResult result = new XcHttpResult() { Result =...false }; foreach (var item in context.ModelState.Values) {
IMessage message; try { //如果是set方法,且不是设置ModelState...的方法,且ModelState为Modified时,记录更新字段 if (callMsg.MethodName.StartsWith("set_") && args.Length...callMsg.MethodName.Contains("ModelState")) { object obj =...= type.GetProperty("ModelState"); if ((ModelStateEnum)ModelState.GetValue(obj...return message; } return msg; 判断MethodInfo的以set_开头并且不为设置基类状态属性ModelState
fullHtmlFieldName = htmlHelper.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldName(name); 6: ModelState...modelState; 7: 8: //将ModelState设置为表示是否勾选布尔值 9: if (htmlHelper.ViewData.ModelState.TryGetValue...(fullHtmlFieldName, out modelState)) 10: { 11: htmlHelper.ViewData.ModelState.SetModelValue...= modelState) 22: { 23: htmlHelper.ViewData.ModelState[fullHtmlFieldName...] = modelState; 24: } 25: } 26: string htmlString = html.ToHtmlString
如图,用 ModelState.IsValid 这段话来对验证结果进行判定,如果实体类上的被标注的特性都满足条件的话,就为true,否则为false。...一番折腾无果,那么就不能从特性本身找突破口了,这时,我把目标转移到ModelState.IsValid上,换一种思路实现。 ?...> item in actionContext.ModelState.ToArray()) { if (ia[0].Modes =...actionContext.ModelState.IsValid) { actionContext.Response...= actionContext.Request.CreateErrorResponse(HttpStatusCode.BadRequest, actionContext.ModelState);
, JObject errors) { foreach (var c in ModelState.Keys) { if (!...ModelState.IsValidField(c)) { string errStr = ""; foreach (var err in...ModelState[c].Errors) { errStr += err.ErrorMessage + "";...代码通过遍历ModelState中不能通过验证的字段,将其加入到errors对象中。...(ModelState,errors); } 现在要考虑怎么返回这个errors对象,解决办法是在WriteJobjectResult方法加一个类型为JObject的对象,并添加以下代码: if(errors
领取专属 10元无门槛券
手把手带您无忧上云