iT邦幫忙

2023 iThome 鐵人賽

DAY 16
0
Software Development

ASP.NET MVC基礎修練:從菜開始系列 第 16

Day-16 ASP.NET MVC 之 路由4

  • 分享至 

  • xImage
  •  

簡介

在使用 MapRoute() 方法定義路由時,除了可以定義固定數量的 URL段 之外,
還可以定義任意數量的 URL段 。
之前定義的路由中,都是使用固定數量的 URL段
https://ithelp.ithome.com.tw/upload/images/20231001/201066401ZeKAy5fOq.jpg
如上圖
預設時只有3個URL段
執行後如下圖
URL 段已經被成功匹配,而在URL 模式中我們定義了3個URL 段,其中{id}段是可選的。
https://ithelp.ithome.com.tw/upload/images/20231001/20106640L9gOcBJjnF.jpg

定義多個URL段

下圖 就是具有3個URL段的URL地址
https://ithelp.ithome.com.tw/upload/images/20231001/201066404uEkTTGvmd.jpg

嘗試多個 URL 區段
如下圖
https://ithelp.ithome.com.tw/upload/images/20231001/20106640scchyFOWuG.jpg

https://localhost:44394/Home/Index/666/CCC
CCC 是多出來的
那要怎麼可以讓第四個區段也能執行呢
如果要匹配 3 個以上、任意數量的 URL 段,可以使用星號 (*) 符號來實現。
如下圖
https://ithelp.ithome.com.tw/upload/images/20231001/20106640LE0PzKeY2A.jpg

在{id}後面添加了{query}來表示可以匹配到任意數量的URL段,
其中代表任意數量的URL段,而query只是一個變數而已,可以任意命名。

這樣,具有4個URL段的URL地址就可以被訪問了。
如下圖

https://ithelp.ithome.com.tw/upload/images/20231001/2010664047JgLtBn1W.jpg

若再多幾URL 區段也都可以了
如下圖
https://ithelp.ithome.com.tw/upload/images/20231001/20106640nuwQoReMWb.jpg

從這個URL地址上可以看出,不論具有多少個URL段,都可以被訪問到。
值得注意的是,這樣長的URL地址,如果拆分開來,則如下所示:

https://localhost:44344/Home/Index/666/CCC/999/YYY

Controller="Home"
action="Index"
id=666
query=CCC/999/YYY
通過拆分,我們可以更清楚地理解query變數的用途。


上一篇
Day-15 ASP.NET MVC 之 路由3
下一篇
Day-17 ASP.NET MVC 之EntityFramework
系列文
ASP.NET MVC基礎修練:從菜開始30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言