我将模型传递给具有名为eventType的属性的API动作,该属性是可为空的自定义枚举。
如果我为eventType传递一个随机值,例如'h',它将无法序列化这是正确的。
但是,我从ModelState收到的错误不是我希望公共调用者看到的错误。它包括行号和位置(请参见下文)。
我尝试了许多选项,包括自定义数据注释,均未成功。
有人知道我如何定义更好的自定义消息吗?
“将值\” h \“转换为类型时出错'System.Nullable`1 [Custom.EventTypes]'。路径“ eventType”,第1行位置80。“
多数情况下,第一个错误通常是最重要的错误,或更确切地描述情况的错误。您可以使用这种方式进行操作,以从第一个键中获取第一条错误消息,或者如果希望获取所有错误消息,则将其更改为所需的任何内容。
public ActionResult GetMyMoney(MyModel myModel)
{
string nss = ModelState.First().Key;
ModelError[] ern = ModelState[nss].Errors.ToArray();
string ndd = ern.First().ErrorMessage;
}
public class CustomFilter: IAsyncActionFilter
{
public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
{
if (!context.ModelState.IsValid)
{
// You can pass custom object to BadRequestObjectResult method
context.Result = new BadRequestObjectResult(customObject);
}
}
}