w3schools net mvc link generate asp asp.net-mvc-3 razor actionlink

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 })