2016-07-22 67 views
0

如何將所有未找到的頁面請求重定向到同一視圖?在dotvvm中重定向所有未找到的路由

這在某種程度上說明我的意思:

config.RouteTable.Add("Home", "*", "Views/Home.dothtml", new { }); 

背後的想法是,當有人訪問一個不存在的頁面:

http://localhost/WhatEverNonExistingPage 

的resquest被重定向到

http://localhost/Home 
+0

這對你有用嗎? http://stackoverflow.com/questions/11045733/404-redirecting-for-non-aspx-pages – Danieboy

+0

感謝您的回覆,dotvvm可以在Owin上運行,因此您不一定需要IIS來託管它。我不知道該方法是否適用於dotvvm + IIS,但在我的情況下,web.config未被使用。 –

回答

1

目前我發現的唯一方法是在dotvvm規則之外實現它:

appBuilder.Run(context => 
{ 
    context.Response.Redirect("/Home"); 
    return Task.FromResult(0); 
}); 

這意味着基本上任何不匹配配置中間件中任何路由的請求都將被重定向到「/ Home」。不是我正在尋找的答案,但它是有效的。

0

既然DotVVM是Owin,你可以在Nancy中使用它。任何在DotVVM中不匹配的路由都會傳遞給Nancy。然後,您可以使用Nancy處理您的404或其他可能需要的類型,例如301,如果您正在重建網站。

這是一個有點囉嗦的方法,但如果你正在編寫與微服務的混合應用程序,那麼它可能是有道理的。

設置:

https://github.com/riganti/dotvvm-samples-combo-with-nancy

處理自定義404在南希。

https://blog.terribledev.io/custom-error-pages-in-nancy/

+0

404錯誤不會引發任何異常,它只是被忽略並且管道中的下一個中間件被調用。 – exyi

+0

你是對的,它不能用異常過濾器來完成。我必須記下我自己的答案。 –