Ошибка необязательного параметра ActionLink - PullRequest
1 голос
/ 02 ноября 2011

Я использую следующий код в представлении и пытаюсь добавить ссылку на вывод в конце, используя дополнительный параметр, но получаю следующую ошибку:

System.ArgumentException: словарь параметров содержитпустая запись для параметра 'personID' ненулевого типа 'System.Int32' для метода 'System.Web.Mvc.ActionResult Withdraw (Int32, Int32)' в MaxMe2.Controllers.TeamController.Необязательный параметр должен быть ссылочным типом, обнуляемым типом или быть объявленным как необязательный параметр.

<% if(Model.departmentsDisplayCheck) {%>
<table>
    <tr>         
        <th>Name</th>
        <th>Type</th>
        <th>Status</th> 
    </tr>

<% foreach (var dep in Model.departmentsList){ %>

    <tr>
        <td><%: Html.ActionLink(dep.Name, "Details", "Department", new { id=dep.DepartmentID}, null) %></td>
        <td><%: dep.DepartmentType.Type %></td>
        <td><%: dep.DepartmentStatus.Status %></td>
        <td><%: Html.ActionLink("Withdraw", "Withdraw", "Team", new { id = Model.personalInfo.PersonID, dep = dep.DepartmentID}, null)%></td>
    </tr>
<% } %>

Метод контроллера, который я пытаюсь вызвать, таков:

public ActionResult Withdraw(int personID, int departmentID)
    {
        .....
    }

Как я могу сделать эту работу?Заранее спасибо!

1 Ответ

6 голосов
/ 03 ноября 2011

Ваши имена параметров не совпадают с именами, отправленными по ссылке действия. Попробуйте вот так:

public ActionResult Withdraw(int id, int dep)

или обновите имена параметров ActionLink, чтобы они соответствовали именам действия:

<%= Html.ActionLink(
    "Withdraw", 
    "Withdraw", 
    "Team", 
    new { 
        personID = Model.personalInfo.PersonID, 
        departmentID = dep.DepartmentID
    },
    null
) %>

и затем:

public ActionResult Withdraw(int personID, int departmentID)

собирается на работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...