Attribute Routing
- use a request to route to a controller action method instead of using routing table
Route attribute :
可以指定哪一個 ActionResult 來 Match 這一個 URL, 因為 Route Attribute 是從網站的最源頭開始, 所以並不用加
可以指定哪一個 ActionResult 來 Match 這一個 URL, 因為 Route Attribute 是從網站的最源頭開始, 所以並不用加
/
, 範例1, 如果 URL 是 https://mysite/product, 那麼這一個 URL 就會 hit Index action, 並回傳 View, 範例 2, 如果 URL 是 https://mysite/product/list, 那麼 URL 就會 hit List() 這一個 action, 並且回傳 List 的 View
Route prefix attribute:
Route prefix attribute 主要是用來定義一整個 class 的 route, 如果 Url 是 https://mysite/product, 那麼這一個 controller 就會是這一個 URL 主要的負責人
Override route prefix:
有時候如果我想要在 ProductController 裡面突然有另外一個 Route 可以跟 ProductController 的 Action 一起坐使用, 那麼我就可以 override 這一個 route, 開頭要用
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPu_mBSMv1DHCzS2uMCyh52IOSeLVqnvZQiF6M0CrapqBACUUH0vgF8s0QIQMD-4Yuoq7MVSgY7U7YXnlG_yAUBqSeR1l9DgqNKHiqWOGuouxBckRnQ7219pmFw6IscSOa8SHMZ16-rJM/s640/ra-3.png)
有時候如果我想要在 ProductController 裡面突然有另外一個 Route 可以跟 ProductController 的 Action 一起坐使用, 那麼我就可以 override 這一個 route, 開頭要用
~
來表示從 root route 開始, 而不是從 /product 開始, 接下來就可以寫要 hit 這一個 action 所需的字, 以這一個例子, 就是 https://mysite/product-list, 雖然裡面並沒有 product 的 controller, 但是仍然可以生存在 product controller 裡面因為我們 override the route prefix![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPu_mBSMv1DHCzS2uMCyh52IOSeLVqnvZQiF6M0CrapqBACUUH0vgF8s0QIQMD-4Yuoq7MVSgY7U7YXnlG_yAUBqSeR1l9DgqNKHiqWOGuouxBckRnQ7219pmFw6IscSOa8SHMZ16-rJM/s640/ra-3.png)
Route attribute for controller defaults:
可以在 class controller 裡面指定 default action
可以在 class controller 裡面指定 default action
Customer parameters for single route
在 route 裡面, 也可以自己指定要有怎麼樣的 route name, 以這一個例子來看, productName 就可以是我的 url, 相對應的 action 也要接收相同的 parameter, 也就是 productName
在 route 裡面, 也可以自己指定要有怎麼樣的 route name, 以這一個例子來看, productName 就可以是我的 url, 相對應的 action 也要接收相同的 parameter, 也就是 productName
Limit the value of parameters(Built-in Constraints)
可以在route 裡面指定 constraints, 這張圖只擷取一部份
可以在route 裡面指定 constraints, 這張圖只擷取一部份
留言
張貼留言