【问题标题】:Passing an id from View to a new html.ActionLink() [duplicate]将 id 从 View 传递到新的 html.ActionLink() [重复]
【发布时间】:2016-05-04 19:38:10
【问题描述】:

我在将 ID 从视图发送到控制器并通过 actionLink() 发送回另一个视图时遇到问题

@model Mooshak2._0.Models.ViewModels.UserHomeViewModel

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

我正在尝试将指定的作业 ID 发送到 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 包含所有详细信息,包括我似乎无法弄清楚如何获取的名称。关于如何使用 actionLink 将 id 传递给视图的任何想法?问题出在 ActionLink 还是控制器中?

【问题讨论】:

    标签: c# html asp.net-mvc


    【解决方案1】:

    这就是你要找的。您正在传递 id 参数,但未在控制器中使用此参数;

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

    编辑:哦,@Mostafizur Ra​​hman 已经做出了必要的评论。对不起

    【讨论】:

    • 但是当我尝试打开 studentassignment 视图时,我仍然收到一条错误消息:“您要查找的资源(或其依赖项之一)可能已被删除、更改名称或暂时不可用。请查看以下 URL 并确保其拼写正确。“和请求的 URL:/User/StudentAssignments/7 但数据库中有一个 id = 7 的作业。我是否有可能有 actionresult控制器在错误的控制器中?
    • 您应该检查您的User 控制器。它必须包含StudentAssignment 方法,如下所示。那个网址就是这个意思。
    • 哦,没关系,它被命名为 StudentAssignment,而不是 StudentAssignments。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-15
    • 2015-02-28
    • 2012-10-24
    • 2020-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多