C# 我的路线怎么了?
当我从列表视图中单击编辑链接时,出现以下错误 参数字典包含“WebUI.Controllers.EnvironmentsController”中“System.Web.Mvc.ActionResult Edit(Int32)”方法的不可为空类型“System.Int32”的参数“envId”的空条目。可选参数必须是引用类型、可为null的类型或声明为可选参数。 参数名称:参数 这是我的密码:C# 我的路线怎么了?,c#,asp.net-mvc,asp.net-mvc-2,asp.net-mvc-routing,C#,Asp.net Mvc,Asp.net Mvc 2,Asp.net Mvc Routing,当我从列表视图中单击编辑链接时,出现以下错误 参数字典包含“WebUI.Controllers.EnvironmentsController”中“System.Web.Mvc.ActionResult Edit(Int32)”方法的不可为空类型“System.Int32”的参数“envId”的空条目。可选参数必须是引用类型、可为null的类型或声明为可选参数。 参数名称:参数 这是我的密码: 您自动生成的链接显示: <td><%= Html.ActionLink("Ed
您自动生成的链接显示:
<td><%= Html.ActionLink("Edit", "Edit", new { id= Model.EnvironmentID} )%></td>
MVC的模型绑定按名称将操作中的参数挂钩,默认路由假定第一个参数是名为id
的int
。将Edit()
参数的名称更改为id
,它应该可以工作
或者,您可以将ActionLink parameters对象更改为new{envId=Model.EnvironmentID}
,但这将导致您的URL如下所示:
http://localhost/Env/Edit?envId = 1
与此相反:
http://localhost/Env/Edit/1
我有一种感觉,这取决于你试图打开哪个URL。。。
http://localhost/Env/Edit/1