Saltar al contenido

HTML.ActionLink frente a Url.Action en ASP.NET Razor

Basta ya de indagar por todo internet ya que has llegado al espacio indicado, contamos con la respuesta que quieres encontrar pero sin complicaciones.

Solución:

Sí, hay una diferencia. Html.ActionLink genera un etiqueta mientras que Url.Action devuelve solo una url.

Por ejemplo:

@Html.ActionLink("link text", "someaction", "somecontroller", new  id = "123" , null)

genera:

link text

y Url.Action("someaction", "somecontroller", new id = "123" ) genera:

/somecontroller/someaction/123

También hay Html.Action que ejecuta una acción de controlador secundario.

Html.ActionLink genera un etiqueta automáticamente.

Url.Action genera solo una url.

Por ejemplo:

@Html.ActionLink("link text", "actionName", "controllerName", new  id = "" , null)

genera:

">link text

y

@Url.Action("actionName", "controllerName", new  id = "" ) 

genera:

/controllerName/actionName/

El mejor punto a favor que me gusta es usar Url.Action(...)

Está creando una etiqueta de anclaje por su cuenta donde puede configurar su propio texto vinculado fácilmente incluso con alguna otra etiqueta html.

" )">

   ;height: />

   @Html.DisplayFor(model => model.)

@Html.ActionLink("Create New", "Create")

@using (Html.BeginForm("Index", "Company", FormMethod.Get))

Find by Name: @Html.TextBox("SearchString", ViewBag.CurrentFilter as string)

En el ejemplo anterior, puede ver que si necesito específicamente un botón para realizar alguna acción, debo hacerlo con @Url.Action, mientras que si solo quiero un enlace, usaré @Html.ActionLink. El punto es cuando tienes que usar algún elemento (HTML) con la URL de acción.

¡Haz clic para puntuar esta entrada!
(Votos: 2 Promedio: 5)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *