前面一系列都在介紹 Attribute Routing 的內容,相較於在 RouteConfig.cs 裡設定 Route,使用 Attribute Routing 是比較彈性與方便,但是在管理上就不是那麼容易了,因為散在各處的 Controller 都有可能使用到 Attribute Routing 來做 Route 設定,以前只要在 RouteConfig.cs 與 Areas 裡的 AreaRegistration 就可以看到所有的 Route,現在則是每個 Controller 都要打開來看才行。
不過在 Visual Studio 裡有個工具則是一次列出專案裡的所有 Route 設定,讓我們可以馬上一目了然,並且還有提供檢測 Route Mapping 功能,讓我們未執行網站前就可以知道設定的 Route 是否能夠正確的 Mapping。
Cobisi Routing Assistant
http://cobisi.com/routing-assistant
這是一套免費的工具,要收錢的是 Cobisi MVC Extensions,這個 MVC Extensions 則是有提供了類似 Attribute Routing 的功能,一樣可以在 Controller 裡使用 Attribute 的方式來設定 Route,而搭配 Cobisi Routing Assistant 使用的話,則是可以有更多的功能可以使用,不過 Cobisi MVC Extensions 的費用雖然不是很貴(單一網站授權費用為 $49.95),花錢購買使用的人畢竟算是少數,雖然有提供免費的使用版本,但是只要有使用就會強制在網頁的下方自動顯示 Copyright 文字,雖然可以用一些方法將 Copyright 給移除,但是使用者付費的觀念與作法還是要再次強調。
安裝
我們可以透過 Visual Studio 的「擴充功能和更新」來安裝 Cobisi Routing Assistant,
http://visualstudiogallery.msdn.microsoft.com/f0589156-a8e6-47db-8bac-90f01ca6b8a3安裝完成並重新啟動 Visual studio 之後,可以在「工具」底下看到
使用
首先點選「工具 > Cobisi Routing Assistant > Routing Explorer」,會開啟一個浮動視窗,如下:
建議各位可以將 Routing Explorer 釘在方案總管的那個區塊裡,這樣比較方便做查看,另外如果專案是第一次使用 Routing Explorer,那麼需要按下視窗裡的「Unblock」。
按下「Unblock」之後就會載入專案裡所有的 Route 設定,包含 Areas 下的 Route 設定也會顯示出來,
當專案裡的 Route 設定有所變動時,Routing Explorer 並不會馬上更新,而是要在重新建置專案後 Routing Explorer 才會更新內容,更新的速度會稍微延遲一些,看各位所使用的開發環境速度而定。
如果 Route 設定有很多的時候或是要查看符合某些條件的 Route 時,可以在 Routing Explorer 裡進行篩選,
如果專案裡的 Route 設定有問題時,Routing Explorer 則會顯示錯誤的訊息,不過因為不是使用 Cobisi MVC Extensions,所以並不會顯示那一個 Route 設定有問題,
如果專案有使用 Cobisi MVC Extensions 的話,在 Routing Explorer 還有可以直接到定義的位置,
Route 對映
這邊要介紹另外一個功能就是「URL Mapper」,可從「工具 > Cobisi Routing Assistant > URL Mapper 」開啟,
開啟的 URL Mapper 視窗,我會建議釘在 Visual Studio 下方,
在 URL Mapper 裡操作前要先指定專案,
然後在 URL 裡輸入要檢查對映的內容,輸入完成後按右方的「Map」按鍵,如果有對映到的話就會在下方顯示。
例如:
輸入 ~/Foobar/Product/Seafood,結果有兩個對映結果出來,對映的結果裡會顯示對映到那一個 Controller 與 Action 以及參數名稱,
不過這只是先提供 Route 設定的對映查詢,實際上是否能夠使用還是真的執行過後才知道,URL Mapper 是提供一個對映的功能,讓我們在設定 Route 後,在實際執行之前先做測試。
以上簡單介紹 Cobisi Routing Assistant 這個免費的工具,讓我們可以方便的檢視專案裡的 Route 設定,以及使用 URL Mapping 功能以測試 Route 設定是否能夠被正確的匹配。
不管是只有使用傳統的 Route 設定,還是已經有使用 Attribute Routing,使用 Cobisi Routing Assistant 可以讓我們對於 Route 設定與管理能夠方便一些。
延伸閱讀:
ASP.NET MVC - 使用 Attribute Routing
ASP.NET MVC - 使用 Attribute Routing, 設定路徑階層
ASP.NET MVC - 使用 Attribute Routing, RouteArea
以上
好東西,謝啦^^
回覆刪除