【问题标题】:How can I redirect an asp.net mvc2 page如何重定向 asp.net mvc2 页面
【发布时间】:2010-09-30 15:22:25
【问题描述】:

我希望获取发布到表单的数据,对其进行处理,然后使用 GET 数据和 POST 数据重定向到第三方网站。

我知道 Response.Redirect() 不是解决这个问题的方法 - 但是是什么?

我不想将原始表单提交给第三方提供商,我首先要对他们的结果进行一些处理 - 所以这不是一个选项。

谁能推荐一种方法让我将用户传递给第 3 方提供商(在我的域之外)?

【问题讨论】:

  • 澄清一下,我的请求的第一部分有效。我的用户正在成功填写表单并将其传递给我网站上的另一个控制器。但是,在这个阶段(在用户提交了他们的表单并且值已经在服务器端处理之后)我想将用户重定向到第三方网站,同时发送 POST 变量。这如何实现?

标签: c# asp.net post redirect


【解决方案1】:

通常(除非使用 Web 服务),这是通过执行您需要的任何处理,然后 GETting 或 POST 将数据发送到第三方站点来完成的。然后,他们稍后会 POST 或 GET 回来(使其成为异步操作),发送到您网站上预先安排的 URL,或者您传递给他们的 URL,允许您对他们的输出做任何您想做的事情。

【讨论】:

    【解决方案2】:

    html

    <form id="aForm">
         name: <input type="text" id="userName">
    </form>
    <script type="text/javascript">
    jQuery.ajax({
         url:'Home/FistAction',
         data:jQuery('#aForm').serialize(),
         type:'POST'
         success:function(data){
               // it would make more sense if received data is of type json
               // pass this data to third party, with jsonp request type
         }
    });
    </script>
    
    
        [HttpPost]
        public JsonResult FistAction(FormCollection f)
        {
           // process your form and creat new object 'NewObject'        
    
           //return json to make third party request
           return Json(NewObject,JsonRequestBehavior.DenyGet)
        }
    

    【讨论】:

    • 您好 Praveen,这是否允许我将用户重定向到我的域/服务器之外的网站?
    • 所以最好的方法是使用后处理值制作一个新表单,并在表单呈现后使用 javascript 强制提交表单?没有服务器端的方法吗?这种方法似乎有点……捏造?
    • 您不必再制作一张表格,但必须以 json 格式返回数据(您想将其传递给第三方)。当从您那里收到该数据时,您必须将该数据传递给第三方。您还可以在“Fisrt_Action”方法中进行网络调用,将您的数据发布到第三方服务器。我没有写过,因为大多数网络托管公司都不允许这样做。
    • 你提到'创建新对象'NewObject'' -> NewObject 是什么类型的对象?
    • newObject 是您想要传递给第三方的任何对象
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-21
    • 2014-07-18
    • 2011-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多