@ Html.ActionLink和@ Html.DisplayFor同时(不对,但它描述了我想做的事)

Ecn*_*lyr 20 actionlink razor asp.net-mvc-3

我将以下表放在名为Student(/ Student/Details/1)的控制器中的视图中:

    @foreach (var item in Model.Enrollments)
    {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.Course.Title)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Grade)
            </td>
        </tr>
    }
Run Code Online (Sandbox Code Playgroud)

我想将每个表定义变成一个链接,将我带到名为Course(/ Course/Details/1)的控制器中的视图.

我尝试过以下方面的事情:

@Html.ActionLink(Html.DisplayFor(modelItem => item.Course.Title, "Details", "Course"))
Run Code Online (Sandbox Code Playgroud)

代替

@Html.DisplayFor(modelItem => item.Course.Title)
Run Code Online (Sandbox Code Playgroud)

哪个不编译.如何正确显示我的模型标题以及引用标题详细信息的链接?

Iri*_*dio 35

如果我理解你的问题,你需要一个与课程文本的链接.

这应该工作:

  @Html.ActionLink(item.Course.Title, "Details", "Course")
Run Code Online (Sandbox Code Playgroud)

如果您想将课程的ID传递给控制器​​(假设您的路由规则设置正确且ID类似于:item.Course.Id)

  @Html.ActionLink(item.Course.Title, "Details", "Course", new { Id = item.Course.Id }, null /* html attributes */)
Run Code Online (Sandbox Code Playgroud)

如果需要在属性上使用UIHint属性,要添加额外的格式,可以使用此属性

  <a href="@Url.Action("Details", "Course", new { Id=item.Course.Id})">@Html.DisplayFor(modelItem => item.Course.Title)</a>
Run Code Online (Sandbox Code Playgroud)