asp.net-mvc html.actionlink

asp.net mvc - Pasar el parámetro a la acción del controlador desde un Html.ActionLink



asp.net-mvc (3)

Además de la respuesta aceptada:

si vas a usar

@Html.ActionLink("LinkName", "ActionName", "ControllerName", new { @id = idValue, @secondParam= = 2 },null)

esto creará un enlace de acción donde no puede crear un nuevo atributo o estilo personalizado para el enlace.

Sin embargo, el 4to parámetro en la extensión ActionLink resolverá ese problema. Usa el 4to parámetro para personalizarlo a tu manera.

@Html.ActionLink("LinkName", "ActionName", "ControllerName", new { @id = idValue, @secondParam= = 2 }, new { @class = "btn btn-info", @target = "_blank" })

¿Hay algo mal con este html? Quiero tener un enlace en la página maestra para navegar a la vista "CreateParts". Tengo la acción ''CreateParts'' que tiene un parámetro parentPartId en el controlador ''PartList''.

<li id="taskAdminPartCreate" runat="server"> <%= Html.ActionLink("Create New Part", "CreateParts", "PartList", new { parentPartId = 0 })%></li>

La acción de mi controlador es como

public ActionResult CreateParts(int parentPartId) { HSPartList objHSPart = new HSPartList(); objHSPart.Id = parentPartId; return View(objHSPart); }

Cuando hago clic en ''Crear nueva parte'' en el menú en SiteMaster, obtengo una excepción. Por favor, échame una mano con esto.


Está utilizando la sobrecarga incorrecta de ActionLink. Prueba esto

<%= Html.ActionLink("Create New Part", "CreateParts", "PartList", new { parentPartId = 0 }, null)%>


Está utilizando una sobrecarga incorrecta. Deberías usar esta sobrecarga

public static MvcHtmlString ActionLink( this HtmlHelper htmlHelper, string linkText, string actionName, string controllerName, Object routeValues, Object htmlAttributes )

Y el código correcto sería

<%= Html.ActionLink("Create New Part", "CreateParts", "PartList", new { parentPartId = 0 }, null)%>

Tenga en cuenta que el parámetro extra al final. Para las otras sobrecargas, visite el método LinkExtensions.ActionLink . Como puede ver, no hay ninguna string, string, string, object sobrecarga de string, string, string, object que esté tratando de usar.