Asp.net mvc 开始使用ASP.NET MVC路由

Asp.net mvc 开始使用ASP.NET MVC路由,asp.net-mvc,routing,Asp.net Mvc,Routing,我已经开始做ASP.NETMVC,但我不知道从哪里开始这个问题 我创建了一个默认应用程序,创建了一个EventModel、EventController和一系列默认事件视图。一切正常 但是,我希望通过以下方式使路由工作: 域/事件->列出所有事件,与默认情况下域/事件类似 domain/event/3->显示特定事件(ID为3),默认情况下与domain/details/3相同 domain/event/cool event->根据事件模型的属性“slug”显示特定事件 域/事件/编辑/3->编

我已经开始做ASP.NETMVC,但我不知道从哪里开始这个问题

我创建了一个默认应用程序,创建了一个EventModel、EventController和一系列默认事件视图。一切正常

但是,我希望通过以下方式使路由工作:

  • 域/事件->列出所有事件,与默认情况下域/事件类似
  • domain/event/3->显示特定事件(ID为3),默认情况下与domain/details/3相同
  • domain/event/cool event->根据事件模型的属性“slug”显示特定事件
  • 域/事件/编辑/3->编辑事件
  • 我一直在玩路由器,我不能让它表现出我想要的样子。上述逻辑容易实现吗?

    使用它可能是这样的(未经测试):


    你检查过了吗?应该很简单,是的,这是一个标准场景。所有路由都很容易区分(基于数字检查为2/3)。ooo属性路由非常闪亮!
    public class EventController : Controller
    {
        //1. domain/events -> lists all events, sort of like domain/event does by default
        [Route("events")]
        public ActionResult Index()
        {
            //TODO: Add Action Code
            return View();
        }
    
        //2. domain/event/3 -> show a specific event (ID of 3), just like domain/details/3 does by default.
        [Route("event/id")]
        public ActionResult Details(int id)
        {
            //TODO: Add Action Code
            return View();
        }
    
        //3. domain/event/cool-event -> show a specific event based on it's 'slug', which is a property of the EventModel
        [Route("event/{slug?}")]
        public ActionResult ViewEvent(string slug)
        {
            //TODO: Add Action Code
            return View();
        }
    
        //4. domain/event/edit/3 -> edits the event.
        [Route("event/edit/id")]
        public ActionResult Edit(int id)
        {
            //TODO: Add Action Code
            return View();
        }
    }