首页 > 解决方案 > 从另一个网站导航时 RedirectToAction 不起作用

问题描述

我正在开发一个带有 PayPal 集成的 asp.net 核心 MVC 项目。完成付款后,PayPal 正确重定向到成功 URL (.../PayPal/PaymentSuccess)。请看下面给出的方法:

贝宝控制器

    public class PayPalController 
     {
            public IActionResult PaymentSuccess()
            {
            //code for business logic here
            TempData["Amount"] = amount; 
            return RedirectToAction("PaymentCompleted", "Home");
            }
     }

家庭控制器

         public class HomeController
         {
                public IActionResult PaymentCompleted()
                {
                var amount = Convert.ToDecimal(TempData["Amount"]);
                //code for business logic here
                return View();
                }
         }

我曾尝试在托管环境中使用 PayPal 付款。完成付款后,PayPal 成功调用了该PaymentSuccess()方法。在这个方法中,我们添加了数据库更新的业务逻辑。在此之后,我们需要重定向到另一个页面"PaymentCompleted"以显示付款成功消息。

HomeController问题是成功执行 PaymentSuccess 方法中的代码后,重定向到另一个控制器 ( ) 中的视图页面“PaymentCompleted”不起作用。

但是,我尝试PaymentSuccess()直接在浏览器中调用该方法,现在重定向工作正常。

编辑:我使用了一种'TempData'方法'PaymentSuccess()'来传递支付金额以显示在'PaymentCompleted'视图页面上。

为什么会这样?任何人都可以指定这个问题背后的原因吗?

任何帮助都是不言而喻的。谢谢你!

标签: c#asp.net-coreredirectpaypaltempdata

解决方案


我之前也和你的问题一样。

代码处理业务逻辑的问题是exception代码运行无法到达RedirectToAction

您可以添加try/catch处理异常,并记录信息以查看详细信息


推荐阅读