@Html.ActionLink и @Html.DisplayFor в то же время (не правильно, но он описывает, что я хочу делать)
У меня есть следующая таблица, расположенная в представлении внутри контроллера с именем 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)
Что не компилируется. Как я должен соответствующим образом отобразить название моей модели вместе со ссылкой на детали ссылочного названия?
Ответы
Ответ 1
Если я правильно понимаю ваш вопрос, вам нужна ссылка на текст курса.
Это должно работать:
@Html.ActionLink(item.Course.Title, "Details", "Course")
Если вы хотите передать идентификатор курса контроллеру (если ваши правила маршрутизации установлены правильно, а 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>
Ответ 2
Вы забыли )
после Html.DisplayFor(modelItem => item.Course.Title
.
Возможно, попробуйте добавить .ToString()
, чтобы он мог помочь.
Ответ 3
// 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 })