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
.png)
.png)
.png)
Comments
Post a Comment