C# &引用;Ploc“;和奇怪的异常消息字符串
上下文 我使用OData和模型状态验证来生成错误消息。当试图获取验证错误的实际原因时,我拉出异常消息 我有以下代码:C# &引用;Ploc“;和奇怪的异常消息字符串,c#,asp.net,validation,odata,modelstate,C#,Asp.net,Validation,Odata,Modelstate,上下文 我使用OData和模型状态验证来生成错误消息。当试图获取验证错误的实际原因时,我拉出异常消息 我有以下代码: foreach (var field in modelState) { details.AddRange(field.Value.Errors.Select(error => new Error { Target = field.Key.ToCamelCase()
foreach (var field in modelState)
{
details.AddRange(field.Value.Errors.Select(error => new Error
{
Target = field.Key.ToCamelCase(),
Message = error.ErrorMessage,
InnerError = new Error
{
Message = error.Exception.Message
}
}));
}
问题在于error.Exception.Message
示例
当我发送请求时
{
"assisfdgfsdgnedBy": true
}
{
"assisfdgfsdgnedBy": truedsg
}
这是消息的值:
“!ynECc!请求负载中的参数'assisfdgfsdgnedBy'不是操作'Count'的有效参数。Ploc Ploc!”
当我发送请求时
{
"assisfdgfsdgnedBy": true
}
{
"assisfdgfsdgnedBy": truedsg
}
消息的价值是
“!ieOni!JSON无效。意外标记'truedsg'。Ploc!”
有时我甚至会有这样的结局
“啪,啪,啪!”
对于每种错误类型,“!something!”的第一部分似乎都会更改,但对于具有相同错误的请求,它是一致的
问题
这些值是什么,为什么它们出现在异常消息中,以及如何在不影响其他“正常”异常消息的情况下轻松删除它们?我已经找到了一个剥离这些值的解决方案,但我仍然不知道是什么导致了这些值 代码如下:
public static string CleanPlocPloc(string message)
{
message = Regex.Replace(message, "^!.+?!", "");
message = Regex.Replace(message, @"\.(\s(Ploc|Plo))*\s!$", ".");
return message;
}