asp.net mvc 3 - net - @ Html.ActionLink y @ Html.DisplayFor al mismo tiempo(no está bien, pero describe lo que quiero hacer)
link c# mvc (3)
Tengo la siguiente tabla ubicada en una vista dentro de un controlador llamado Estudiante (/ Estudiante / Detalles / 1):
@foreach (var item in Model.Enrollments)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Course.Title)
</td>
<td>
@Html.DisplayFor(modelItem => item.Grade)
</td>
</tr>
}
Me gustaría convertir cada definición de tabla en un enlace que me lleve a una vista dentro de un controlador llamado Curso (/ Curso / Detalles / 1).
He intentado cosas a lo largo de las líneas de:
@Html.ActionLink(Html.DisplayFor(modelItem => item.Course.Title, "Details", "Course"))
en lugar de
@Html.DisplayFor(modelItem => item.Course.Title)
Que no se compila. ¿Cómo mostraría adecuadamente el título de mi modelo junto con un enlace a los detalles del título al que se hace referencia?
Olvidaste un )
después de Html.DisplayFor(modelItem => item.Course.Title
.
Tal vez intente agregar un .ToString()
a esto podría ayudar.
Si entiendo bien tu pregunta, quieres un enlace con el texto del curso.
Esto debería funcionar:
@Html.ActionLink(item.Course.Title, "Details", "Course")
Si desea pasar la ID del curso al controlador (suponiendo que sus reglas de enrutamiento están configuradas correctamente y la ID es algo como: item.Course.Id)
@Html.ActionLink(item.Course.Title, "Details", "Course", new { Id = item.Course.Id }, null /* html attributes */)
Si necesita usar el atributo UIHint en la propiedad, para agregar un formato adicional, puede usar este
<a href="@Url.Action("Details", "Course", new { Id=item.Course.Id})">@Html.DisplayFor(modelItem => item.Course.Title)</a>
// 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 })