2011-05-24 79 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