tag route pasar net mvc mezclar entre datos data controladores asp all asp.net-mvc asp.net-mvc-4 html-helper

asp.net mvc - route - URL.Acción() incluidos los valores de ruta



pasar datos entre controladores mvc (2)

Tengo una aplicación ASP.Net MVC 4 y estoy usando el ayudante Url.Action de esta manera: @Url.Action("Information", "Admin")

Esta página se usa para agregar un nuevo y editar un perfil de administrador. Las URL son las siguientes:

Adding a new: http://localhost:4935/Admin/Information Editing Existing: http://localhost:4935/Admin/Information/5 <==Admin ID

Cuando estoy en la sección Editing Existing del sitio y decido que me gustaría agregar un nuevo administrador, hago clic en el siguiente enlace:

<a href="@Url.Action("Information", "Admin")">Add an Admin</a>

Sin embargo, el problema es que el enlace anterior va a http://localhost:4935/Admin/Information/5 . Esto solo ocurre cuando estoy en esa página editando un administrador existente. En cualquier otro lugar del sitio, se vincula correctamente a http://localhost:4935/Admin/Information

¿Alguien más ha visto esto?

ACTUALIZAR:

RouteConfig:

routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } );


También puedes usar de esta forma:

<a href="@Url.Action("Information", "Admin", null)"> Admin</a>


url saliente en mvc generado en base al esquema de enrutamiento actual.

debido a que su método de acción de Información requiere el parámetro id, y su colección de rutas tiene una identificación de su URL actual solicitada (/ Admin / Information / 5), el parámetro id obtenido automáticamente de los valores de recopilación de rutas existentes.

para resolver este problema, debe usar UrlParameter.Optional:

<a href="@Url.Action("Information", "Admin", new { id = UrlParameter.Optional })">Add an Admin</a>