如何在.NET Core服务器中生成指向Angular路由的url

时间:2019-05-13 20:38:15

标签: angular asp.net-web-api asp.net-core

我的项目使用.NET Core(2.2)Angular Spa template。在此设置中,路由由“客户端” Angular(7)Web应用程序处理。

在没有与该路由/组件相关的控制器动作的情况下,如何生成将与密码重置电子邮件一起发送的密码重置表单的网址?

在一个经典的ASP.NET项目中,例如以Razor页面为例,我将使用UrlHelper class来构造指向特定控制器和动作的URL。确实,我仍然使用UrlHelper构造电子邮件确认消息的URL:

cli

这是可能的,因为有一个“确认电子邮件”操作:

var callbackUrl = new Uri(Url.Link("ConfirmEmail", new { username = newUser.UserName, code = code }));

密码重置的URL不同,因为对此没有控制器操作。该链接包含代码参数,并指向Angular组件。我找不到有关信息的地方是如何获取url的路由/基础,在开发中是 [HttpGet, Route("ConfirmEmail", Name = "ConfirmEmail")] [AllowAnonymous] public async Task<IActionResult> ConfirmEmail(string username, string code) { ... } ,但在生产中会有所不同:

http://localhost:55722

我可以创建一个用于创建url的'mock'操作,但这似乎太过分了。最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

如果您知道从何处提供Angular应用程序,请手动生成URL(也要知道Angular应用程序中的路由配置)。您还可以将角度应用程序的根URL保存在后端中,以帮助您创建最终URL。