C# &引用;Ploc“;和奇怪的异常消息字符串

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()

上下文

我使用OData和模型状态验证来生成错误消息。当试图获取验证错误的实际原因时,我拉出异常消息

我有以下代码:

        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;
}