Получение значения Null в параметре метода Action - PullRequest
0 голосов
/ 05 января 2019

Я получаю нулевое значение в параметре моего метода действия.

это мой метод действия

 [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 под циклом, он должен посылать идентификатор методу действия контроллера, но я всегда получаю параметр null. Специальная ссылка:

@Html.ActionLink (@ projects.SurveyName, "ProjectData", "Home", новый {id = formId}, null)

Я могу видеть идентификатор путем отладки в представлении, но в методе действия контроллера я не могу получить это значение идентификатора.

1 Ответ

0 голосов
/ 05 января 2019

Свойства объекта routeValues ​​в ActionLink должны соответствовать параметрам действия контроллера.

В настоящее время это

new { id = formId }

, который не соответствует параметру ProjectData

public ActionResult ProjectData(int? formId)

Обновление для соответствия

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