重定向到另一个视图后再次调用 MVC 控制器
MVC Controller called again after redirecting to another view
我正在使用 eWay 支付门户构建一个 e-commerce 应用程序,但我 运行 遇到了一个奇怪的问题。
在我的 eWay 设置中,我为支付网关提供了一个重定向 URL 以用于返回我的应用程序。这工作正常,在回调方法结束时我使用 RedirectToAction
重定向到 Confirmation
视图。
但是,回调方法完成后,会再次调用。只有第二次才能正确完成重定向到我的确认页面。
在 Fiddler 中,我似乎从回调方法到确认视图得到了正确的 302
响应,但是我得到的图标是 Session was aborted by the client, Fiddler, or the Server
。请注意,当 Fiddler 关闭时,这仍然会发生。
我的回调方式:
public ActionResult PurchaseCallback(string accessCode)
{
// payment processing
.....
return RedirectToAction("Confirmation");
}
public ActionResult Confirmation()
{
return View("Confirmation");
}
Fiddler 跟踪:
显示请求和响应的 Fiddler 跟踪 headers:
请注意对 /Purchase/Purchase
的调用重定向到 eWay 门户,在通往 eWay 本身的隧道之前,在最终到达 /Purchase/Confirmation
之前返回到 Purchase/PurchaseCallback
两次。另请注意第一个 /PurchaseCallback
调用上的图标,它表示已中止 session。但是我不知道为什么它会被中止。
PurchaseCallback
没有关联的视图并且 Confirmation
的视图没有 JavaScript 或其他请求。我正在使用 IIS Express,但我在许多其他地方使用 RedirectToAction
模式没有问题。
什么会导致我的控制器方法被调用两次,我该如何阻止它发生?
检查您是否在 eWAY 共享页面设置 (doco here) 中启用了 "Redirect after payment processing" 选项。有时这会在您单击按钮后创建对重定向页面 before/just 的调用,这将创建两个调用(如果延迟设置为 5 秒,这尤其是一个问题)。
我正在使用 eWay 支付门户构建一个 e-commerce 应用程序,但我 运行 遇到了一个奇怪的问题。
在我的 eWay 设置中,我为支付网关提供了一个重定向 URL 以用于返回我的应用程序。这工作正常,在回调方法结束时我使用 RedirectToAction
重定向到 Confirmation
视图。
但是,回调方法完成后,会再次调用。只有第二次才能正确完成重定向到我的确认页面。
在 Fiddler 中,我似乎从回调方法到确认视图得到了正确的 302
响应,但是我得到的图标是 Session was aborted by the client, Fiddler, or the Server
。请注意,当 Fiddler 关闭时,这仍然会发生。
我的回调方式:
public ActionResult PurchaseCallback(string accessCode)
{
// payment processing
.....
return RedirectToAction("Confirmation");
}
public ActionResult Confirmation()
{
return View("Confirmation");
}
Fiddler 跟踪:
显示请求和响应的 Fiddler 跟踪 headers:
请注意对 /Purchase/Purchase
的调用重定向到 eWay 门户,在通往 eWay 本身的隧道之前,在最终到达 /Purchase/Confirmation
之前返回到 Purchase/PurchaseCallback
两次。另请注意第一个 /PurchaseCallback
调用上的图标,它表示已中止 session。但是我不知道为什么它会被中止。
PurchaseCallback
没有关联的视图并且 Confirmation
的视图没有 JavaScript 或其他请求。我正在使用 IIS Express,但我在许多其他地方使用 RedirectToAction
模式没有问题。
什么会导致我的控制器方法被调用两次,我该如何阻止它发生?
检查您是否在 eWAY 共享页面设置 (doco here) 中启用了 "Redirect after payment processing" 选项。有时这会在您单击按钮后创建对重定向页面 before/just 的调用,这将创建两个调用(如果延迟设置为 5 秒,这尤其是一个问题)。