1
我已經行動方法定義爲ASP.NET的WebAPI更改默認參數綁定錯誤消息
public HttpResponseMessage Get(SomeEnum? param)
{
...
}
如果我通過了PARAM一些無效的值,它是無法轉換爲某些Enum類型我得到這個消息:
The value 'xxx' is not valid for Nullable`1.
這是我可以從ModelState獲得的默認消息。我想定製此消息。我發現了很多技巧,如何在ASP.NET MVC中完成(如here),但WebAPI沒有任何提示。更改DefaultModelBinder.ResourceClassKey在WebAPI中不起作用。我也嘗試通過自定義ParameterBindingRule來解決問題:
config.ParameterBindingRules.Insert(0, parameter =>
{
if (!typeof (EnumType?).IsAssignableFrom(parameter.ParameterType))
return parameter.BindAsError("Error message");
return null;
});
不幸的是,這也行不通。
您可以創建自定義ExceptionFilter實現你porpose。 – 2014-11-06 12:58:54
@AnkushJain我已經定義了全局異常過濾器,但在這種情況下還沒有達到。我想我必須創建一些自定義綁定或驗證器。 – Michal 2014-11-06 13:49:27
它會工作。可能是你沒有遵循適當的規則來實現它。請仔細閱讀http://www.asp.net/web-api/overview/error-handling/web-api-global-error-handling – 2014-11-06 18:50:22