asp.net - solicitud - ¿Cómo ocultar el nombre del controlador en Url?
tag helpers asp net core (2)
La idea es la misma Haz lo que hiciste con la acción. Sin embargo, su problema surge del hecho de que IIS probablemente no esté asignando www.xyz.com/1234 al tiempo de ejecución de ASP.NET. Para hacerlo en IIS7, habilite el modo integrado y en IIS6, agregue una asignación de comodín en el mapa del controlador que mapea todo a ASP.NET.
Para agregar un mapa comodín, consulte http://haacked.com/archive/2008/11/26/asp.net-mvc-on-iis-6-walkthrough.aspx (Busque "URL sin extensión de IIS6" en ese página)
Después de eso, simplemente agrega una ruta:
routes.MapRoute("UserDetails", "{UserID}/{*name}",
new { controller = "Users", action = "UserDetail" , UserID=""});
Esto debería funcionar.
¿Cómo ocultar el nombre del controlador en Url?
Yo uso ASP.NET MVC.
La URL original es: http://www.sample.com/Users.mvc/UserDetail/9615
Los "Usuarios" son el nombre del controlador, el "UserDetail" es el nombre de la acción y el "9615" es UserId.
¿Cómo puedo ocultar el nombre del controlador y el nombre de la acción en la url?
Justo como este: http://www.sample.com/9615
He escrito el siguiente código en Global.ascx.cs para ocultar el nombre de la acción:
routes.MapRoute(
"UserDetail", // Route name
"Users.mvc/{UserId}", // URL with parameters
new { controller = "Users", action = "UserDetail", UserId = "" } // Parameter defaults
);
Usando el código anterior, oculté el nombre de la acción y obtuve esta url: http://www.sample.com/Users.mvc/9615
Pero ¿cómo puedo ocultar el nombre del controlador y obtener esta url: http://www.sample.com/9615
Gracias.
MVC reconoce la diferencia entre "{ID de usuario}" e "{id}", por lo que si va a tener una ruta con solo "{ID de usuario}" en la URL, debe colocarla primero en la lista; de lo contrario, nunca será afectada . Y asegúrese de que el valor predeterminado incluya "id", ya que se repetirá continuamente en "UserDetails", a menos que el ID de las referencias predeterminadas esté en relación con UserID. Encontré que este formato funciona para mí:
routes.MapRoute("UserDetails",
"{UserID}",
new { controller = "Users", action = "UserDetail", id = "" }
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Account", action = "LogOn", id = "" } // Parameter defaults
);