空入口错误

时间:2009-12-18 06:06:06

标签: .net asp.net-mvc

我的观点中有这个代码:

<%=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类型。

但我没有看到代码有任何问题。 我认为这是一个简单的问题,但我无法弄清楚如何使它工作.. 请帮忙。 谢谢!

2 个答案:

答案 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

参数名称应与您尝试调用的值的名称相同..