从控制器重定向并传递自定义数据

问题描述 投票:0回答:1

我是 .netcore 新手,我正在使用 React 将我的网站之一迁移到 .netcore 应用程序。

我有重定向问题:

注册后,系统会向用户发送一封电子邮件,其中包含激活帐户的链接。该链接调用 API。链接如下所示:
http://主机:端口/api/user/activate?用户名=&activationCode=

一切正常,链接激活了用户。但是,我希望用户被重定向到主登录页面,该页面也在 http://host:port/ 中。

这不是问题。我正在使用这个代码并且它有效。

[Route("Activate")]
        [HttpGet]
        public async Task<IActionResult> Activate(string Username, string ActivationCode)
        {
           // whatever I need to do for activation

          
           result.UrlHelper.ActionContext.HttpContext.Response.Redirect("./");

            return result;
        }

这有效。然而,它并不完整。我想在根页面上显示一条消息“激活成功”。所以我想传递一些数据。

我尝试过:

   result.UrlHelper.ActionContext.HttpContext.Response.Headers.Add("message", message);
   result.UrlHelper.ActionContext.HttpContext.Response.Headers.Add("success", success.ToString());

但是没有添加标题。

然后,我尝试了查询字符串

string requeststr = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}?message={message}&success={success.ToString()}";
            result.UrlHelper.ActionContext.HttpContext.Response.Redirect(requeststr);

这也不起作用,因为未添加查询字符串。

知道为什么会发生这种情况吗?还有其他替代解决方案吗?

.net-core controller asp.net-core-webapi single-page-application
1个回答
0
投票

你有几种可能性。如果您的主登录页面直接在您的应用程序中,您可以在方法末尾使用

return RedirectToAction("actionName", "controllerName");

或者确保您可以通过此重定向到任何页面

return Redirect("https://google.com");

有关重定向的更多信息(请在下拉列表中选择 .net 版本的 api): https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.mvc.controllerbase.redirecttoaction?view=aspnetcore-7.0

© www.soinside.com 2019 - 2024. All rights reserved.