2016-07-22 4 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, вы можете использовать его с Нэнси. Любые маршруты, которые не совпадают с DotVVM, передаются Нэнси. Затем вы можете использовать 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

Вы правы, это невозможно сделать с фильтрами исключений. Я должен буду пометить свой собственный ответ. –

 Смежные вопросы

  • Нет связанных вопросов^_^