tag route net mvc examples asp c# asp.net-mvc asp.net-mvc-routing

c# - route - Establecer "Página de inicio" en Asp.Net MVC



route controller mvc 5 (7)

ASP.NET Core

El enrutamiento se configura en el método Configure de la clase Startup . Para configurar la "página de inicio" simplemente agregue lo siguiente. Esto provocará que los usuarios sean enrutados al controlador y a la acción definida en el método MapRoute cuando / si navegan a la URL base de su sitio, es decir, yoursite.com enrutará a los usuarios a yoursite.com/foo/index:

app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=FooController}/{action=Index}/{id?}"); });

Núcleo Pre -ASP.NET

Utilice el método RegisterRoutes ubicado en App_Start / RouteConfig.cs (MVC 3 y 4) o Global.asax.cs (MVC 1 y 2) como se muestra a continuación. Esto provocará que los usuarios sean enrutados al controlador y a la acción definida en el método MapRoute si navegan a la URL base de su sitio, es decir, yoursite.com enrutará al usuario a yoursite.com/foo/index:

public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); // Here I have created a custom "Default" route that will route users to the "YourAction" method within the "FooController" controller. routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "FooController", action = "Index", id = UrlParameter.Optional } ); }

En asp.net MVC, la "página de inicio" (es decir, la ruta que se muestra al acceder a www.foo.com) está configurada en Inicio / Índice.

  • ¿Dónde está almacenado este valor?
  • ¿Cómo puedo cambiar la "página de inicio"?
  • ¿Hay algo más elegante que usar RedirectToRoute () en la acción de índice del controlador doméstico?

Traté de compilar para Home / Index en mi proyecto y no pude encontrar una referencia, ni pude ver nada en IIS (6). Miré la página default.aspx en la raíz, pero eso no pareció hacer nada relevante.

Gracias


Enrutamiento de atributos en MVC 5

Antes de MVC 5, puede asignar direcciones URL a acciones y controladores específicos llamando a routes.MapRoute(...) en el archivo RouteConfig.cs. Aquí es donde se almacena la URL de la página de inicio ( Home/Index ). Sin embargo, si modifica la ruta predeterminada como se muestra a continuación,

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

Tenga en cuenta que esto afectará las URL de otras acciones y controladores. Por ejemplo, si tuviera una clase controladora llamada ExampleController y un método de acción dentro de ella llamado DoSomething , entonces la url predeterminada esperada ExampleController/DoSomething ya no funcionará porque se cambió la ruta predeterminada.

Una solución para esto es no meterse con la ruta predeterminada y crear nuevas rutas en el archivo RouteConfig.cs para otras acciones y controladores como tal,

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

Ahora, la acción DoSomething de la clase DoSomething se asignará a la url hey/now . Pero esto puede ser tedioso de hacer cada vez que quiera definir rutas para diferentes acciones. Por lo tanto, en MVC 5 ahora puede agregar atributos para que coincidan con las URL de acciones como esta,

public class HomeController : Controller { // url is now ''index/'' instead of ''home/index'' [Route("index")] public ActionResult Index() { return View(); } // url is now ''create/new'' instead of ''home/create'' [Route("create/new")] public ActionResult Create() { return View(); } }


Intenté la respuesta pero no funcionó para mí. Esto es lo que terminé haciendo:

Crea un nuevo controlador DefaultController. En acción de índice, escribí una línea redirigir:

return Redirect("~/Default.aspx")

En RouteConfig.cs, cambie controller = "Default" para la ruta.

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


Paso 1: haga clic en Archivo Global.asax en su Solución.

Paso 2: luego ve a Definición de

RouteConfig.RegisterRoutes(RouteTable.Routes);

Paso 3: cambiar el nombre del controlador y la vista

public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute(name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); } }


compruebe el método RegisterRoutes en global.asax.cs: es el lugar predeterminado para la configuración de la ruta ...


Mire Default.aspx/Default.aspx.cs y Global.asax.cs

Puede configurar una ruta predeterminada:

routes.MapRoute( "Default", // Route name "", // URL with parameters new { controller = "Home", action = "Index"} // Parameter defaults );

Simplemente cambie los nombres de Controlador / Acción a su valor predeterminado deseado. Esa debería ser la última ruta en la tabla de enrutamiento.


public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Your Controller", action = "Your Action", id = UrlParameter.Optional } ); } }