por parametros enviar ejemplos asp.net-mvc

asp.net mvc - parametros - Uso de Html.ActionLink para llamar a la acción en diferentes controladores



enviar parametros por url action (8)

Estoy tratando de navegar entre los controladores utilizando ActionLink . Voy a contar mi problema con un ejemplo.

Estoy en la vista de índice del controlador Hat, y estoy tratando de usar el siguiente código para crear un enlace a la acción Detalles del controlador del producto.

<%= Html.ActionLink("Details", "Details", "Product", new { id=item.ID }) %>

En lugar de crear un enlace a Detalles en el controlador del producto, esto genera un enlace a la acción Detalles en el controlador de Hat y agrega un parámetro de Longitud al final:

Hat/Details/9?Length=7

No puedo usar HTML.ActionLink para cambiar entre los controladores debido a este problema. Apreciaré si me puede indicar lo que estoy haciendo mal. Gracias

PD: estoy usando la configuración de ruta predeterminada que viene con MVC

routes.MapRoute("Default", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = "" } );


Con esos parámetros estás activando la función / método sobrecargado incorrecto.

Lo que funcionó para mí:

<%= Html.ActionLink("Details", "Details", "Product", new { id=item.ID }, null) %>

Se activa HtmlHelper.ActionLink (string linkText, string actionName, string controllerName, object routeValues, object htmlAttributes)

Estoy usando MVC 4.

Cheerio!


Estás golpeando mal la sobrecarga de ActionLink. Intenta esto en su lugar.

<%= Html.ActionLink("Details", "Details", "Product", new RouteValueDictionary(new { id=item.ID })) %>


Este código funcionó para mí en una vista parcial:

<a href="/Content/[email protected]">@item.Title</a>


Lo que quieres es esta sobrecarga:

//linkText, actionName, controllerName, routeValues, htmlAttributes <%=Html.ActionLink("Details", "Details", "Product", new {id = item.ID}, null) %>


Recomendaría escribir estos ayudantes usando parámetros con nombre para mayor claridad de la siguiente manera:

@Html.ActionLink( linkText: "Details", actionName: "Details", controllerName: "Product", routeValues: new { id = item.ID }, htmlAttributes: null )



Una solución alternativa sería usar el objeto de ayuda Url para establecer el atributo href de una etiqueta <a> como:

<a href="@Url.Action("Details", "Product",new { id=item.ID }) )">Details</a>


inténtalo está funcionando bien

<%:Html.ActionLink("Details","Details","Product", new {id=item.dateID },null)%>