我們正在使用ASP.NET MVC Web API開發Web API,.NET 4,我們正在使用JSON.NET v 6.0.0.0提交的沒有值的查詢字符串參數用0(零)創建int []
如果我請求提交給我們的API,如:
/API /產品/查找productIdList = & productIdList = & productIdList =
,並請求模型定義爲
[JsonObject]
public class ProductLookupRequest
{
[Required(ErrorMessage = "productIdList is a required parameter.")]
[MinLength(1, ErrorMessage = "A minimum of one (1) product Id must be specified.")]
[MaxLength(50, ErrorMessage = "A maximum of twenty (20) product Ids can be specified.")]
public int[] ProductIdList { get; set; }
}
?
和動作的方法來處理該請求具有以下簽名
[HttpGet]
[ValidateRequestModel]
public HttpResponseMessage ProductLookup([FromUri]ProductLookupRequest productLookupRequest)
控制器的動作接收已經ProductIdList填充了3項我們處理零的0
目前各保持的值。ProductLookupRequest對象如果數組包含任何零,則輸出一個HTTP 400錯誤請求。
ValidateRequestModelAttribute檢查模型狀態,如果發現錯誤,則返回HTTP 400錯誤請求,而不輸入操作方法。我想保留這種方法來發送沒有值的查詢字符串參數,這樣我們就不會在控制器的操作方法中執行額外的驗證。
問題: 有沒有一些內置的方式來處理這與模型綁定或通過JSON.NET?或者我是否需要編寫自定義數據註釋來處理此問題;一個檢查查詢字符串參數,如果有任何是空的向ModelState添加一個錯誤使其無效?
可以解決這個使用途徑PARAMS配置或實現自定義模型粘合劑。 – Fals