1

这是错误报告:

参数字典包含“Grid.Controllers.GridController”中方法“System.Web.Mvc.ActionResult Delete(Int32)”的不可空类型“System.Int32”的参数“id”的空条目。可选参数必须是引用类型、可空类型或声明为可选参数。参数名称:参数

这是我的代码:

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

我的路由表:

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
        );

    }

我的动作链接:

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

1 回答 1

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
于 2012-07-11T21:27:03.650 回答