0

在MVC5中,您可以使用控制器上的以下屬性來設置默認路由?如何在使用屬性時設置MVC6中的默認路由?

〔路線( 「{動作=索引}」)]

什麼是這個在MVC6等效?

更新

這是我在MVC5

[Route("{action=index}")] 
    public class StaticPagesController : Controller 
    { 
     public ActionResult About() 
     { 
      return View(); 
     } 

     public ActionResult Contact() 
     { 
      return View(); 
     } 

     public ActionResult Index() 
     { 
      return View(); 
     } 
    } 

我一直無法工作,如何做到在MVC6等效代碼,但我已經能夠得到相同的功能使用以下內容:

[Route("[action]")] 
    public class StaticPagesController : Controller 
    { 
     public ActionResult About() 
     { 
      return View(); 
     } 

     public ActionResult Contact() 
     { 
      return View(); 
     } 

     [Route("/[action]")] 
     [Route("/")] 
     public ActionResult Index() 
     { 
      return View(); 
     } 
    } 

回答

1

您可以修飾您想要成爲默認操作的特定操作方法Route屬性,並通過[controller]作爲路由模板。因此,無論何時您收到yoursite/yourcontroller的請求,傳入的請求都會被重定向到這個特定的操作方法。

public class SettingsController : Controller 
{  
    public IActionResult Index() 
    { 
     return View(); 
    } 

    [Route("[controller]")] 
    public IActionResult OtherIndex() 
    { 
     return Content("This will be the response for mySite/Settings request"); 
    } 
} 

編輯:按註釋

我不希望包括在URL.I控制器名稱希望它是 domain.com/About而不是domain.com/StaticPages/關於

使用屬性路由,您可以使用Route屬性修飾您的操作方法,並給出[action]作爲模板名稱。

public class StaticPagesController : Controller 
{  
    [Route("[action]")] 
    public IActionResult About() 
    { 
     // This action method will be executed for "yourSite/About" request 
     return View(); 
    } 
} 

通過上述方法,你不能有2個動作方法的具有相同名稱在您的應用程序例如:你不能在HomeControllerAbout操作方法,並StaticPagesController

+0

[控制器]在行動? –

+0

@CoolBreeze是的。使該操作方法成爲控制器的默認操作方法。 – Shyju

+0

這沒有奏效。 我不確定是否因爲我的控制器上有以下屬性: [Route(「[action]」)] public class StaticPagesController:Controller –

相關問題