2011-05-24 70 views
0

我收到以下错误,当我从列表中单击视图我的路线有什么问题?

参数字典包含参数为非可空类型“System.Int32”的“ENVID”的方法“空条目的编辑链接的System.Web “WebUI.Controllers.EnvironmentsController”中的“.Mvc.ActionResult Edit(Int32)”。可选参数必须是引用类型,可为空类型,或者声明为可选参数。 参数名:参数

这里是我的代码:

Summary.ascx
Routes
Env Controller, Edit Action methods
Env Controller, List Action method
EnvRepository and SqlEnvRepository

+0

我有一种感觉,这取决于你试图打开哪个URL ... – Snowbear 2011-05-24 20:42:15

回答

2

你自动生成的链接这样说:

<td><%= Html.ActionLink("Edit", "Edit", new { id= Model.EnvironmentID})%></td> 

但控制器代码这样说:

public ActionResult Edit(int envId) 

MVC的模型绑定挂钩的动作参数按名称,默认路径假设第一个参数将被称为idint。将Edit()参数的名称更改为id,它应该可以工作。

或者,你可以改变ActionLink的参数反对new { envId = Model.EnvironmentID }但会导致你的URL看起来像这样:

http://localhost/Env/Edit?envId = 1 

,而不是这样的:

http://localhost/Env/Edit/1 
+0

谢谢迈克尔,那已经工作了。 – Animesh 2011-05-24 21:39:28