Asp.net-Mvc-3

@Html.ActionLink 和 @Html.DisplayFor 同時(不對,但它描述了我想要做什麼)

  • March 6, 2012

我在名為 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>
   }

我想將每個表定義變成一個連結,該連結將我帶到名為 Course (/Course/Details/1) 的控制器中的視圖。

我已經嘗試過以下方式:

@Html.ActionLink(Html.DisplayFor(modelItem => item.Course.Title, "Details", "Course"))

代替

@Html.DisplayFor(modelItem => item.Course.Title)

哪個不編譯。我將如何適當地顯示我的模型的標題以及指向引用標題詳細資訊的連結?

如果我理解你的問題,你想要一個包含課程文本的連結。

這應該有效:

 @Html.ActionLink(item.Course.Title, "Details", "Course")

如果您想將課程的 ID 傳遞給控制器(假設您的路由規則設置正確並且 Id 類似於:item.Course.Id)

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

如果你需要在屬性上使用 UIHint 屬性,添加額外的格式,你可以使用這個

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

引用自:https://stackoverflow.com/questions/9584673