我的观点中有这个代码:
<%=Html.ActionLink("Approve", "NewsApprove", New With {ID}, DBNull.Value)%>
在我的控制器中:
Function NewsApprove(ByVal dID As Integer) As ActionResult
dTempNews.ApproveNews(dID)
Return RedirectToAction("Administrator")
End Function
我的问题是它总是返回一个错误,上面写着: 参数字典包含“UC_Website.UserController”中方法“System.Web.Mvc.ActionResult NewsApprove(Int32)”的非可空类型“System.Int32”的参数“dID”的空条目。要使参数可选,其类型应为引用类型或Nullable类型。
但我没有看到代码有任何问题。 我认为这是一个简单的问题,但我无法弄清楚如何使它工作.. 请帮忙。 谢谢!
答案 0 :(得分:1)
我还没有参与过asp.net MVC。但是,这是我的理解。
查看为<%=Html.ActionLink("Approve", "NewsApprove", New With {ID}, DBNull.Value)%>
生成的链接。它看起来像http://.../Approve/吗? (即没有任何ID参数)
要么传入要执行的操作的有效整数值。即链接应该看起来像http://.../Approve/0123
为此,您应传入有效的积分值&amp;不是空值。
我认为代码应该是new with {"dID", ID}
。
OR
如果没有ID参数的链接正常,请NewsApprove
方法接受Nullable<int>
(例如http://.../Approve/)
编辑:NewsApprove
方法是否已超载?即1,带整数参数&amp;另一个具有相同名称但没有参数的方法。
答案 1 :(得分:0)
查看:
<%=Html.ActionLink("Approve", "NewsApprove", New With {ID}, DBNull.Value)%>
控制器:
Function NewsApprove(ByVal ID As Integer) As ActionResult
dTempNews.ApproveNews(ID)
Return RedirectToAction("Administrator")
End Function
参数名称应与您尝试调用的值的名称相同..