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
Html.Action("GetXXX", "Ctrler", new { QId = Model.Id }) 
// 其中 Model.Id 有值
而是因為
public ActionResult GetXXX(Guid Id)
{
    ...
}
Controller 中的方法參數名稱跟 Html.Action 取的不一樣(一個叫 QId 一個叫 Id),所以就爆了。
只要都改成 Id 即可。
// V
Html.Action("GetXXX", "Ctrler", new { Id = Model.Id })
// C
public ActionResult GetXXX(Guid Id)
{
    ...
}


沒有留言:

張貼留言