简体   繁体   English

如何针对POST的无效数据类型发送用户友好的错误消息?

[英]How to send a user-friendly error message on invalid datatypes for a POST?

The data is being validated correctly in the below code, but I would like to send back a more user-friendly error message than just returning a 500 if the data formatting is bad. 数据已在下面的代码中正确验证,但是如果数据格式不好,我想返回的信息比返回500更为人性化。

public class PostData
{
    public DateTime DateOfBirth {get; set;}
}

[HttpPost]
public string MakeAWish([FromBody] PostData data)
{
    return "Happy BirthDay!";
}

The following value works fine. 以下值可以正常工作。 { "dateOfBirth" : "1980-01-01" }

The value below obviously does not. 下面的值显然没有。 { "dateOfBirth" : "1980" }

How can I send back a user friendly message when the dateOfBirth is formatted incorrectly? 如果dateOfBirth的格式不正确,如何发送用户友好的消息?

Set DateOfBirth to be a string. 将DateOfBirth设置为字符串。 Then have another property that is the DateTime, ie DateOfBirthDT. 然后具有另一个属性,即DateTime,即DateOfBirthDT。

When the user submits the string DateOfBirth you can use DateTime.TryParse() to test if the string value can parse to a valid DateTime value, if not you can return a friendly error. 当用户提交字符串DateOfBirth时,可以使用DateTime.TryParse()来测试字符串值是否可以解析为有效的DateTime值,否则不能返回友好错误。

For example: 例如:

public class PostData
{
    public string DateOfBirth {get; set;}
    public DateTime DateOfBirthDT {get; set;}
}

[HttpPost]
public string MakeAWish([FromBody] PostData data)
{
    if(DateTime.TryParse(data.DateOfBirth, out DateTime dob)) {
        data.DateOfBirthDT = dob;
        return "success";
    }else {
        return "Please post a valid date";
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 从实体框架中提取用户友好的错误消息 - Extract user-friendly error message from entity framework 如何通过重定向到MVC中的用户友好错误页面来创建异常 - How to create an exception with redirection to user-friendly error page in MVC 生成用户友好的URL - Generating User-Friendly URLs 如何从用户友好(本地化)路径获取StorageFolder? - How to get a StorageFolder from an user-friendly (localized) path? 如何在NumericUpDown中使用更加用户友好的文本替换数字? - How to replace numbers with more user-friendly text in a NumericUpDown? 对HTML进行用户提交的无效部分编码的用户友好的xml敏感度库? - User-friendly xml sensitization library that html encodes invalid parts of user submissions? 用户友好的方式在Silverlight 4中输入列表? - User-friendly way to enter a list in Silverlight 4? 以用户友好的格式显示带宽速度 - Displaying bandwidth speed in a user-friendly format 在asp.net中存储用户友好错误消息和系统错误消息映射的最佳位置? - Best place to store user-friendly error messages and system error messages mapping in asp.net? 删除具有外键引用约束的行时的用户友好错误消息 - User-friendly error messages when removing row with Foreign Key REFERENCE constraint
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM