使ModelItem在视图中可点击,并带item发送到下一页.Id (MVC)

本文关键字:一页 Id MVC item 并带 视图 ModelItem | 更新日期: 2023-09-27 18:09:30

目前用户可以评论评论,所有与评论相关的评论都显示在评论下(如youtube)。您还可以看到创建评论的UserName

我现在要做的是使可见的UserName可点击,并将您发送到另一个页面(与它的用户Id),在那里您可以看到有关该用户的详细信息。我是新的MVC,我不知道如何做到这一点。

下面的代码是我拙劣的尝试,但是可以让您了解我的想法:

<table class="table">
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.Comment)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.User.UserName)
        </th>
    </tr>
@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Comment)
        </td>
        <td>
            @Html.DisplayFor(modelItem => @Html.ActionLink(item.User.UserName, "VisitUser", new { item.User.Id }))
        </td>
    </tr>
}
</table>

下面的代码是我显示用户的控制器代码:

  public ActionResult VisitUser(Guid id) {
        if (id == null) {
            return Content("Something went wrong..");
        }
        User user = db.Users.Find(id);
        if (user == null) {
            return HttpNotFound();
        }
        return View(user);
    }
VisitUSer

视图看起来像上面的视图,但没有@Html.ActionLink..的尝试。

RouteConfig:

 public class RouteConfig {
        public static void RegisterRoutes(RouteCollection routes) {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
        }
    }

使ModelItem在视图中可点击,并带item发送到下一页.Id (MVC)

@foreach (var item in Model)
{
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Comment)
        </td>
        <td>
            @Html.ActionLink(item.User.UserName, 
                "VisitUser", "User", new { id = item.User.Id }, null))
        </td>
    </tr>
}

变化

@Html.DisplayFor(modelItem => @Html.ActionLink(item.User.UserName, "VisitUser", new { item.User.Id }))

@Html.ActionLink("Visit User", "VisitUser", "User", new {id = item.User.Id }, null)

你应该很好地显示