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>