我有这个Action方法:
public ActionResult Index(int? mid)
{
IList<SubGroup> SubGroupLit = (mid != null) ? _subGroupService.GetAllWithGroupId(mid) : _subGroupService.GetAll();
return View(SubGroupLit);
}
我得到了这个错误:
他最好重载方法匹配'ServiceLayer.Interfaces.ISubGroupService.GetAllWithGroupId(int)'有一些无效的参数
但是当我在?
之后删除int
(在Index
参数中)时,它可以正常工作。
有什么问题?
答案 0 :(得分:4)
?
表示它可以为空。但是,您的GetAllWithGroupId
方法只接受int
。如果mid
恰好以null
形式出现,则无法将其传递到该方法,因为null
不是int
。因此错误。你要做的就是让mid
只是int
,正如你已经注意到的那样,mid
有效。或者您需要检查IList<SubGroup> SubGroupLit = mid.HasValue ? _subGroupService.GetAllWithGroupId(mid.Value) : _subGroupService.GetAll();
是否有值,然后将值传递给方法。看起来你已经尝试用三元组做到这一点,但是你犯了一些错误。以下代码应该有效:
{{1}}