我們有以下的ASP.NET Web API小數驗證
public class Model
{
[Required]
public decimal Cost { get;set; }
}
當我們收到一個無效的值,比如 「DASD」 或任何其他的,我返回一個錯誤請求:
public HttpResponseMessage Post(Model data)
{
if (!ModelState.IsValid)
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
return Request.CreateResponse(HttpStatusCode.OK);
}
但在響應中,json看起來像:
{
"message": "The request is invalid.",
"modelState": {
"data.cost": ["Could not convert string to decimal: dasd. Path 'cost', line 1, position 181."],
}
}
首先,我該如何擺脫數據。字首?
此外,我想實現一個自定義的驗證器,像MustBeDecimal屬性,可以讓我返回更多的用戶友好的錯誤 消息。
它可以用於MustBeDecimal屬性,但在嘗試將該值轉換爲十進制之前發生了一些驗證,它會引發異常,並且這是我收到的錯誤。正則表達式驗證甚至沒有被調用。 –