单击“列表”视图中的“编辑”链接时出现以下错误
参数字典包含非可空类型'System.Int32'参数'envId'的空条目,用于'WebUI.Controllers.EnvironmentsController中方法'System.Web.Mvc.ActionResult Edit(Int32)' ”。可选参数必须是引用类型,可空类型,或者声明为可选参数。 参数名称:参数
这是我的代码:
Summary.ascx
Routes
Env Controller, Edit Action methods
Env Controller, List Action method
EnvRepository and SqlEnvRepository
答案 0 :(得分:2)
您自动生成的链接说明了这一点:
<td><%= Html.ActionLink("Edit", "Edit", new { id= Model.EnvironmentID} )%></td>
但控制器代码说明了这一点:
public ActionResult Edit(int envId)
MVC的模型绑定按名称挂钩操作中的参数,默认路由假设第一个参数是int
,称为id
。将Edit()
参数的名称更改为id
,它应该有效。
或者,您可以将ActionLink参数对象更改为new { envId = Model.EnvironmentID }
,但这会导致您的网址如下所示:
http://localhost/Env/Edit?envId = 1
而不是:
http://localhost/Env/Edit/1