У меня есть ASP. NET приложение WebForms, в которое я пытаюсь интегрировать Angular.
Для простоты у меня есть Login.aspx и Dashboard.aspx .
В Login.aspx есть кнопка «Войти», и в ее обработчике событий «click» я перенаправляю на Dashboard.aspx с помощью строки кода ниже:
Response.Redirect("Dashboard.aspx?auth-token=abcd1234");
Я интегрировал Angular на странице Dashboard.aspx, и разметка для него выглядит следующим образом:
<head>
<meta charset="utf-8">
<base href="/NgDashboard/">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<app-root></app-root>
<script src="runtime-es2015.js" type="module"></script>
<script src="runtime-es5.js" nomodule defer></script>
<script src="polyfills-es5.js" nomodule defer></script>
<script src="polyfills-es2015.js" type="module"></script>
<script src="styles-es2015.js" type="module"></script>
<script src="styles-es5.js" nomodule defer></script>
<script src="vendor-es2015.js" type="module"></script>
<script src="vendor-es5.js" nomodule defer></script>
<script src="main-es2015.js" type="module"></script>
<script src="main-es5.js" nomodule defer></script>
</body>
Теперь, когда я запускаю asp. net Login.aspx приложения, у меня есть URL-адрес:
https://localhost:44303/Login.aspx
И когда я нажимаю «Логин», я хочу, чтобы URL-адрес был следующим:
https://localhost:44303/Dashboard.aspx?auth-token=abcd1234
Для предотвращения Angular из-за изменения URL-адреса, я сделал приведенное ниже изменение для AppRoutingModule (согласно этой ссылке ):
RouterModule.forRoot(routes, {
initialNavigation: false
})
Я не добавил никаких других маршрутов в свое приложение angular. Поэтому я пытаюсь прочитать параметр строки запроса 'auth-token' внутри AppComponent с помощью приведенного ниже кода:
ngOnInit(): void {
this.route.queryParams.subscribe(params => {
this.queryStringAuthToken = params["auth-token"];
});
Теперь, хотя я могу получить URL-адрес, как и ожидалось, angular приложение не может прочитать параметр строки запроса.
Итак, как мне прочитать параметры строки запроса из Angular, когда я перенаправляю с одной страницы aspx на вторую страницу aspx, которая имеет angular приложение внутри него?