Attribute Routing in ASP.NET Core MVC

 using Microsoft.AspNetCore.Mvc;


namespace RoutingWithoutMVC.Controllers

{

    [Route("[controller]/[action]")]

    public class HomeController : Controller

    {

        [Route("")]

        [Route("~/")]

        [Route("~/Home")]

        public IActionResult Index()

        {

            return View();

        }


        //public IActionResult Data()

        //{

        //    return View("~/Views/Home/Index.cshtml");

        //}


        public IActionResult About()

        {

            return View();

        }


        [Route("{id?}")]

        public int Details(int? id)

        {

            return id ?? 1;

        }

    }

}

Above File is RoutingWithoutMVC\Controllers\HomeController.cs File






using Microsoft.AspNetCore.Mvc;

namespace RoutingWithoutMVC.Controllers
{
    public class UserController : Controller
    {
        public IActionResult Index()
        {
            return View();
        }
    }
}
Above File is RoutingWithoutMVC\Controllers\UserController.cs File








@{
    ViewData["Title"] = "About";
}

<h1>About From Home Controller</h1>
Above File is RoutingWithoutMVC\Views\Home\About.cshtml







@{
    ViewData["Title"] = "Index";
}

<h1>Index View From Home Controller</h1>
Above File is RoutingWithoutMVC\Views\Home\Index.cshtml






@{
    ViewData["Title"] = "Index";
}

<h1>Index View From User Controller</h1>
Above File is RoutingWithoutMVC\Views\User\Index.cshtml







namespace RoutingWithoutMVC
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var builder = WebApplication.CreateBuilder(args);
            builder.Services.AddControllersWithViews();
            var app = builder.Build();

            //app.MapGet("/", () => "Hello World!");

            //app.MapDefaultControllerRoute();    //this middleware will call only HomeController and its indexAction method

            //Below is convention based routing
            //app.MapControllerRoute(
            //    name:"default",
            //    pattern:"{controller=Home}/{action=About}/{id?}"
            //    //pattern:"{controller=User}/{action=Index}/{id?}"
            //    //pattern:"{controller=Home}/{action=Index}/{id?}"
            //    );

            //Below is Attribute based routing
            app.MapControllers();   //Implementing Attribute based routing

            app.Run();
        }
    }
}
Above File is RoutingWithoutMVC\Program.cs File



Comments

Popular posts from this blog

Map, MapGet, MapPost, MapPut and MapDelete methods in ASP.NET Core MVC - Routing ASP.NET

Layout View In ASP.NET Core 6 | _Layout.cshtml ASP.NET | Master Page ASP.Net Core