C# MVC Validate jsonString 发布到控制器动作

Posted

技术标签:

【中文标题】C# MVC Validate jsonString 发布到控制器动作【英文标题】:C# MVC Validate jsonString posted to Controller Action 【发布时间】:2017-06-02 08:15:19 【问题描述】:

在典型的 MVC 控制器中,我们可以将 Json 主体与模型绑定,只要所有参数都匹配,如下所示:

[HttpPost]
public void PostPerson(Person p)
    //stuff

但是,我注意到使用提琴手,如果我要做这样的事情:


   "name":,
   "age": 12
  

控制器会自动返回 InternalServerError。我希望能够返回自定义消息。如果是这种情况,我该如何验证 Json?

我最初认为无效的 Json 会导致 Person 对象变为 NULL,因此我为此创建了一个处理程序以返回自定义消息,但在此处尝试后,情况似乎并非如此。

【问题讨论】:

看看自定义模型绑定器 【参考方案1】:

1) 处理错误

我会查看这篇关于不同级别的错误处理的文章。 http://www.dotnettricks.com/learn/mvc/exception-or-error-handling-and-logging-in-mvc4

你可以捕捉不同级别的错误,并返回不同的错误响应。

2) 修复输入

还要考虑当系统的不同部分同意以给定格式 (JSON) 进行通信时,双方不应该遵守吗?客户端向您发送损坏的 JSON 也是一个错误,不是吗?通过清理前端界面几乎可以消除这种情况。

【讨论】:

以上是关于C# MVC Validate jsonString 发布到控制器动作的主要内容,如果未能解决你的问题,请参考以下文章

MVC4 中带有 jquery.validate.unobtrusive 的文件

自定义 asp.net mvc 3 jquery.validate.unobtrusive

ASP.NET MVC 5 Jquery Validate

MVC4 JQuery validate 无法验证非必填字段

MVC中 jquery.validate取消忽略对hidden的验证

在.net mvc中,jquery-validate插件如何远程提交动态参数