我有一個看起來像爲什麼我無法爲列表<int>註冊自定義模型聯編程序?
public ActionResult GetUsers(List<int> userIds) {//do stuff}
的用戶id列表可以成爲相當長一個動作,所以我想用Json.Net來反序列化。爲此,我創建了一個IModelBinder實現,該實現可以很好地適用於其他對象,但從不會被調用List。該IModelBind看起來像這樣
public class JsonBinder : System.Web.Mvc.IModelBinder
{
public object BindModel(System.Web.Mvc.ControllerContext controllerContext, System.Web.Mvc.ModelBindingContext bindingContext)
{ //Do model binding stuff using Json.Net }
}
我註冊這個模型綁定這一行
ModelBinders.Binders.Add(typeof(List<int>), new JsonBinder());
然而JsonBinder永遠不會被調用。爲什麼是這樣?我應該使用ValueProvider嗎?
你檢查isn't被改寫爲類型列表''模型粘合劑?您可以嘗試在全局的Application_Start事件結束時註冊它。asax –
我不確定如何檢查模型聯編程序是否被覆蓋。模型聯編程序的註冊在Application_Start事件結束時完成。 – quarksoup