0

Я пытаюсь реализовать глубокую привязку в Angular 2. Я полностью удалил MVC из моего клиента, поскольку обнаружил, что он очень мало меня предлагает. Однако это означает, что я больше не использую маршрутизатор MVC.Угловая глубокая привязка в AspNetCore без MVC

Может кто-нибудь, пожалуйста, скажите мне, как получить Угловую 2 глубокую связь, не используя MVC?

Моего приложение образца находится в https://github.com/tonywr71/Snazzle

ответ

1

Вы должны полагаться на угловом маршрутизаторе. В общем случае вам нужно обслуживать только index.html (или что-то вроде defaut) с вашего сервера для каждого запроса (или вы можете фильтровать статус 404 и отправлять только index.html только в этом случае). Угловые сделают все остальное.

Чтобы поймать 404 и перенаправить в основном apllication asp.net вы можете добавить это в ваш метод Configure в файле Startup.cs:

app.Use(async (context, next) => 
{ 
    await next(); 
    if(context.Response.StatusCode == 404) 
    { 
     context.Request.Path = "/"; 
     await next(); 
    } 
}); 
+0

Да я знаю, что нужно полагаться на угловом маршрутизаторе. Но это перехват, о котором мне нужно знать больше. Кроме того, не является 404 бит неэффективным, потому что он выполняет проверку сначала, а не перенаправляет все внешние (не угловые2) URL-адреса в одно место? – tone

+0

Я видел этот бит кода, который я ввел в Configure в Startup.cs после вызова UseStaticFiles, но он не сработал: app.Use (async (context, next) => { wait next(); if (context.Response.StatusCode == 404 &&! Path.HasExtension (context.Request.Path.Value)) { 10 context.Request.Path = "/ cats-by-owner-gender"; // Поместите свой Угловая корневая страница здесь wait next(); } }); – tone

+0

Я обновил свой ответ тем, что отлично работает для меня. – rook

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