2012-07-11 35 views
1

時,這是將錯誤報告:錯誤傳遞值控制器的方法

參數字典包含 非空類型「System.Int32」的參數的「id」爲方法 一個空條目「系統.Web.Mvc.ActionResult Delete(Int32)' 'Grid.Controllers.GridController'。可選參數必須是參考類型 ,可爲空類型,或者聲明爲可選參數 。參數名:參數

,這是我的代碼:

public ActionResult Edit(int ProductId) 
    { 
     using (var db = new radioEntities()) 
     { 
      return View(db.CAT_Products.Find(ProductId)); 
     } 
    } 

我routetable:

public static void RegisterRoutes(RouteCollection routes) 
    { 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

     routes.MapRoute(
      "Default", // Route name 
      "{controller}/{action}/{id}", // URL with parameters 
      new { controller = "Grid", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
     ); 

    } 

我的ActionLink:

@Html.ActionLink("Edit", "Edit", new { /* id=item.PrimaryKey */ }) 

回答

5

當在一個id您然後,RouteTable(global.asax.cs)你必須使用相同的名稱爲帕拉姆:

//public ActionResult Edit(int ProductId) 
public ActionResult Edit(int id) 

你應該編輯(固定)的ActionLink:

//@Html.ActionLink("Edit", "Edit", new { /* id=item.PrimaryKey */ }) 
@Html.ActionLink("Edit", "Edit", new { id=item.YourKey }) // depends on your Model and other code