2010-08-24 83 views
0

我正在使用MVCContrib网格。我的控制器操作接受3个参数,网格的sortoptions和paging参数以及ResourceID参数,该参数指定要查看其出价的资源。MVCContrib Grid和nun-nullable参数

当我点击的链接,我得到以下错误

参数字典包含参数为非可空类型“System.Int32”的“RESOURCEID”的方法“的System.Web空项。 “TaskingApp.Controllers.BidController”中的Mvc.ActionResult ByResource(Int32,MvcContrib.UI.Grid.GridSortOptions,System.Nullable`1 [System.Int32])'。可选参数必须是引用类型,可为空类型,或者声明为可选参数。

如何正确传递ResourceId参数?

这里是我的控制器行动

//Get bids by resource 
    public ActionResult ByResource(int ResourceId,GridSortOptions sort, int? page) 
    { 
     var bids = bidRepo.GetUpcomingBidsByResource(ResourceId); 

     if (sort.Column != null) 
      bids = bids.OrderBy(sort.Column, sort.Direction); 
     ViewData["sort"] = sort; 
     return View("Index", bids.AsPagination(page ?? 1, 15)); 

    } 

而这里的ActionLink的

<%= Html.ActionLink(item.ResourceName, "ByResource", new { id = item.ResourceID })%> 

回答

0

指定的属性必须与控制器的属性名相匹配:

new { ResourceId = item.ResourceID } 

也就是说,或者改变你的方法签名如下:

ByResource(int id, GridSortOptions sort, int? page) 
+0

好点,我已经改变了它,但它没有解决问题。 – MrBliz 2010-08-24 13:44:06

+0

单击操作链接时出现错误? – GenericTypeTea 2010-08-24 13:46:00

+0

按照你的第二个建议工作后,我也刚刚意识到你的第一个建议也可以工作,如果我正确地遵循了它,所以请忽略我以前的评论 – MrBliz 2010-08-24 13:47:23