Asp.net mvc 3 如何用帖子重定向ASP.NET MVC?

Asp.net mvc 3 如何用帖子重定向ASP.NET MVC?,asp.net-mvc-3,Asp.net Mvc 3,我正在为一个站点设置一个支付页面,首先完成一个简单购物车的kid,然后当用户单击“提交”时,我需要将交易数据发布到外部信用卡处理站点,并将用户重定向到该站点。一旦他们在那里输入了他们的信用卡详细信息,该网站就会重新定向给我,无论是批准还是拒绝 问题是,我在MVC接口中看不到任何允许我通过POST操作重定向的内容。Redirect()方法使用GET(在第三方站点上无论如何都不起作用)。我尝试使用WebClient.UploadValues()编写一篇编程文章,从中得到一个字符串,我可以通过返回Co

我正在为一个站点设置一个支付页面,首先完成一个简单购物车的kid,然后当用户单击“提交”时,我需要将交易数据发布到外部信用卡处理站点,并将用户重定向到该站点。一旦他们在那里输入了他们的信用卡详细信息,该网站就会重新定向给我,无论是批准还是拒绝

问题是,我在MVC接口中看不到任何允许我通过POST操作重定向的内容。
Redirect()
方法使用GET(在第三方站点上无论如何都不起作用)。我尝试使用
WebClient.UploadValues()
编写一篇编程文章,从中得到一个字符串,我可以通过返回
Content()
,将其呈现给用户,但是表单中的链接(应该是相对于CC处理站点的链接)被解释为相对于我的站点,这对我来说毫无用处


如何做到这一点?

根据您的信用卡处理提供商,机制可能会有所不同。通常,您可以使用带有URL参数的GET,他们将使用该参数填充会话并重定向到收集信用卡信息的表单,或者更可能的是,您使用他们的URL作为签出页面上的操作,以便将其直接发布到他们的站点。检查提供商的文档和示例,因为机制将取决于他们支持的内容。

您不能使用post重定向

但是,您可以执行以下操作:

  • 接收帖子并在上面做一些事情
  • 向用户返回一个视图,其中包含一个表单,表单中填充了包含已处理数据的隐藏字段
  • 使用javascript自动提交表单(在CC提供程序上设置post操作)
  • 用户转到CC提供程序
  • 用户返回到您的站点
编辑- 使用jQuery,表单ID为ccform的表单post,操作设置为cc提供者的URL和隐藏字段:

$.ready(function() { $('#ccform').submit(); });

你不能直接发到那个网站吗?@TimBJames-不,我需要做一些预处理来生成我自己的交易ID等@Shaul-关键是你在点击结账页面之前生成这些东西。例如,您的交易id可以根据您的购物车id、客户id等确定,以便您可以在将交易过帐到卡处理器之前生成交易id。使用带有URL参数的GET不起作用。发帖确实有效——但我从你的回答中感到不安,MVC3不支持程序化发帖。对吗?如果是这样,他们为什么会这样设计?@Shaul不幸的是,我认为mvc中没有实现程序化发布。通常情况下,您会使用指向信用卡处理者站点的表单生成视图。通常,如果您直接发布到他们的站点,而不是使用一些带外API,那么您可以在for上的隐藏(或其他)字段中生成他们需要的所有数据,并将其直接发布到他们的站点。除了生成一个使用javascript自动提交表单的页面外,服务器没有任何方式强迫浏览器在别处发布表单。我会考虑自动提交的邪恶,它不应该有必要与Posival.LoL合作,这是“邪恶的”建议避开的@ TvFason。由于我对javascript一点也不熟悉,您能否提供一个代码示例,说明如何实现这一点?这是“邪恶的”,但如果您想使用POST,则无法通过任何其他方式实现。但是我同意你的CC提供商应该为你提供更好的API。谢谢你的编辑!我如何知道为“#ccform”输入什么字符串?您如何使用
Html.BeginForm
发布到远程站点?@Shaul请参阅发布到外部站点的示例。至于身份证,我想你不应该需要它。只需使用
$('form').submit()应该可以