2015年12月28日 星期一

【ASP.NET MVC】The parameters dictionary contains a null entry for parameter 'XXX' of non-nullable type 'System.Type' for method 'System.Web.Mvc.ActionResult GetYYY(System.Type)' in 'Namespace.XXXController'.

對 'Namespace.XXXController' 的方法 'System.Web.Mvc.ActionResult GetXXX(System.Type)' 中不可為 null 型別 'System.Type' 的參數 'YYY' 而言,參數字典含有 null 項目。選擇性參數必須是參考型別、可為 null 的型別,或必須宣告為選擇性參數。

在 Html.Action 產生 partialView 時碰到錯誤,不過我不是因為傳入的內容是 null
  1. Html.Action("GetXXX", "Ctrler", new { QId = Model.Id })
  2. // 其中 Model.Id 有值
而是因為
  1. public ActionResult GetXXX(Guid Id)
  2. {
  3. ...
  4. }
Controller 中的方法參數名稱跟 Html.Action 取的不一樣(一個叫 QId 一個叫 Id),所以就爆了。
只要都改成 Id 即可。
  1. // V
  2. Html.Action("GetXXX", "Ctrler", new { Id = Model.Id })
  3. // C
  4. public ActionResult GetXXX(Guid Id)
  5. {
  6. ...
  7. }


沒有留言:

張貼留言