Catch-all 路由用於啟用客戶端路由
在 url 中對單頁應用程式(SPA)的狀態進行編碼是一種很好的做法:
my-app.com/admin-spa/users/edit/id123
這允許儲存和共享應用程式狀態。
當使用者將 url 放入瀏覽器的位址列並點選進入伺服器時,必須忽略所請求 URL 的客戶端部分。如果你將 SPA 作為渲染的 Razor 檢視(呼叫控制器操作的結果)而不是靜態 html 檔案提供,則可以使用 catch-all 路徑:
public class AdminSpaController
{
[Route("~/admin-spa/{clienSidePart*}")]
ActionResult AdminSpa()
{
...
}
}
在這種情況下,伺服器只返回 SPA,然後根據路由初始化自己。這種方法更靈活,因為它不依賴於 url-rewrite 模組。