验证MVC核心中的非输入模型

编程入门 行业动态 更新时间:2024-10-28 14:24:13
本文介绍了验证MVC核心中的非输入模型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有一个操作方法,该操作方法具有对象类型输入,如下所示:

I have an action-method that have an object type Input like this:

public async Task<IActionResult> DoSomeThing([FromBody]object input, bool options) { if (options == true) { var castedInput = (A) input; if (TryValidateModel(castedInput)) { // do some thing } else { //return validation Errors; //forexample:return Error("Error1") //??!??!!??!?!?!?!??! } } else { var castedInput = (B)input; if (TryValidateModel(castedInput)) { // do some thing } else { //return validation Errors; //forexample:return Error("You must fill this parameter") //??!??!!??!?!?!?!??! } } }

在这种方法中,我首先将Input转换为ViewModel,然后对其进行验证.现在,我想返回在模型注释上设置的验证错误".我该怎么办?

In this method first I cast Input to my ViewModel then validate it. now I want to return my Validation Errors that I set on annotations of my model. How can I do this?

我的视图模型:

public class A { [Required(ErrorMessage = "Error1")] string Phone; . . . } public class B { [Required(ErrorMessage = "You must fill this parameter")] string Name; . . . }

推荐答案

以下是一个演示示例:

动作:

public JsonResult DoSomeThing([FromBody]object input,bool options) { var model = new Object(); if (options) { model = JsonConvert.DeserializeObject<A>(input.ToString()); } else { model = JsonConvert.DeserializeObject<B>(input.ToString()); } string messages = ""; if (!TryValidateModel(model)) { messages = string.Join("; ", ModelState.Values .SelectMany(x => x.Errors) .Select(x => !string.IsNullOrWhiteSpace(x.ErrorMessage) ? x.ErrorMessage : x.Exception.Message.ToString())); } return Json(messages); }

型号:

public class A { [Required(ErrorMessage = "Error1")] public string Phone { get; set; } } public class B { [Required(ErrorMessage = "You must fill this parameter")] public string Name { get; set; } }

结果:

更多推荐

验证MVC核心中的非输入模型

本文发布于:2023-11-14 16:15:11,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1587925.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:模型   核心   MVC

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!