如何使JSON.NET/MVC 4 WebAPI拒絕枚舉沒有成員的整數值?例如:MVC4 WebAPI拒絕無效的枚舉值
如果我有這樣的模式:
public enum Colour { Red = 1 };
public class Model
{
public Colour Colour { get; set; }
}
Model Post(Model model)
{
// model.Colour could be 99, 34234234, 0 etc, etc
}
如果我發佈{ Color: 9999 }
,我結束了在那裏model.Color = 999的模式,我想返回一個Bad Request狀態代碼來代替。
注:我使用MVC 4來測試它,而不是Web API,但我認爲它應該是相同的。 – Kobi
這對於ASP.NET Core來說在2017年仍然是一個很好的回答,是的,它完全適用於Web API。 – Technetium
由於您依賴於「value」的數據類型已經是Enum類型,因此我正在努力解決這個問題,因爲這個測試怎麼會失敗?當我在WebAPI2中嘗試這段代碼時,當「垃圾」被傳入時,「value」被默認值填充,所以它當然通過了測試。就這樣說,當您利用ModelState.IsValid檢查時,WebAPI2看起來就像是開箱即用。 – retsvek