在 Action 方法的参数中获取 Null 值

Getting Null value in parameter of Action method

我在我的操作方法的参数中得到空值。

这是我的操作方法

 [HttpGet]
    public ActionResult ProjectData(int? formId)
     {
                if (formId == null)
                {
                    return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
                }

                return View();

            }
     }

这是我对 actionlink 的看法

@foreach (var projects in Model)
                {
                    int formId = Convert.ToInt32(@projects.FormId);

                <tr>
                    <td>@projects.Serial</td>
                    <td>@projects.ProjectName</td>
                    @*<td><a href="#">@projects.SurveyName</a></td>*@
                    @*<td>@Html.ActionLink(@projects.SurveyName, "ActionName", new { id = @projects.FormId })</td>*@

                    <td>@Html.ActionLink(@projects.SurveyName, "ProjectData" , "Home", new {id = formId}, null)</td>
                    <td>@projects.TotalSubmission</td>
                    <td>@projects.LastSubmissionTime</td>
                    <td>@projects.SubmissionToday</td>

                </tr>


                }

我正在使用用户定义类型模型列表:

@model IEnumerable<MVC.ProjectInformation>

当我点击循环下的 actionlink 时,它应该将 id 发送到控制器 actionmethod,但我总是得到 null 参数。 具体操作链接:

@Html.ActionLink(@projects.SurveyName, "ProjectData" , "Home", new {id = formId}, null)

我可以通过在 View 上调试来查看 id,但是在控制器 actionmethod 上我无法获得该 id 值。

ActionLink 的 routeValues 对象属性需要匹配控制器动作的参数。

目前是

new { id = formId }

ProjectData

的参数不匹配
public ActionResult ProjectData(int? formId)

更新以匹配

@Html.ActionLink(@projects.SurveyName, "ProjectData" , "Home", new {formId = formId}, null)