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>
_)
_の後に_Html.DisplayFor(modelItem => item.Course.Title
_を忘れました。
たぶんそれに.ToString()
を追加してみてください。
// you want to use link with the displaying a course. you can use.
<a href = "@url.action("Details","course",new {Id = item.Course.Id}
@html.displayfor(m => m.Course.Title)</a>
// second approach
@Html.ActionLink(item.Course.Title, "Details", "Course", new { Id = item.Course.Id })