我的操作方法参数中的值为空。
这是我的动作方法
[HttpGet]
public ActionResult ProjectData(int? formId)
{
if (formId == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
return View();
}
}
这是我对动作链接的看法
@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”,新 {id = formId},为空)
我可以通过在View上调试来查看ID,但是在控制器的actionmethod上,我无法获取该ID值。
答案 0 :(得分:2)
ActionLink的routeValues对象属性需要与控制器操作的参数匹配。
当前是
new { id = formId }
与ProjectData
的参数不匹配
public ActionResult ProjectData(int? formId)
更新以匹配
@Html.ActionLink(@projects.SurveyName, "ProjectData" , "Home", new {formId = formId}, null)