2016-05-04 7 views
0

У меня есть проблема с отправкой идентификатора из вида в контроллер и обратно к другому точке зрения через ActionLink()Передача идентификатора из Вида на новый Html.ActionLink()

@model Mooshak2._0.Models.ViewModels.UserHomeViewModel 

@foreach (var n in Model.Assignments) 
{ 
     @Html.ActionLink(n.Name, "StudentAssignments", "User", new { id = n.ID}, null) 
} 

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

Вот часть UserController:

[Authorize(Roles = "Students")] 
public ActionResult StudentAssignment() 
{ 
    return View(); 
} 

И StudentAssignment должен просто показать имя назначения:

@model Mooshak2._0.Models.ViewModels.AssignmentViewModel 

<h1>@Model.Name</h1> 

В UserHomeViewModel я есть

public List<AssignmentViewModel> Assignments { get; set; } 

и AssignmentViewModel содержит все данные, включая имя, которое я не могу похоже, выяснить, как это сделать. Любые идеи о том, как передать id в представление с помощью actionLink? Является ли проблема в ActionLink или контроллере?

ответ

1

Это то, что вы ищете. Вы передаете параметр id, но не принимаете этот параметр в контроллере;

[Authorize(Roles = "Students")] 
public ActionResult StudentAssignment(int id) 
{ 
    return View(); 
} 

Редактировать: О, @Mostafizur Рахман уже сделал необходимый комментарий. Извините

+0

Но когда я пытаюсь открыть просмотр studentassignment, я все равно получаю сообщение об ошибке: «Ресурс, который вы ищете (или его зависимости), мог быть удален, изменилось его имя или временно недоступно. просмотрите следующий URL-адрес и убедитесь, что оно написано правильно. »и« Запрошенный URL:/User/StudentAssignments/7 », но в базе данных есть идентификатор id = 7. Возможно ли, что у меня есть actionresult в контроллере в неправильный контроллер? – arnarjoh

+0

Вы должны проверить свой 'User' контроллер. Он должен содержать метод 'StudentAssignment', как показано ниже. этот url означает это. – Qsprec

+0

О, да, конечно, это было названо StudentAssignment, а не StudentAssignments. Спасибо за вашу помощь! – arnarjoh

Смежные вопросы