在表单提交上重定向到外部URL

时间:2010-10-26 19:27:52

标签: asp.net-mvc redirect external-url

我有一个表单,提交时应重定向到外部URL以对表单数据执行某些操作,并在成功提交后保留在主页上。我使用重定向,但这将使我的第二个选项成为可能,但不是我的第一个选项。请帮忙..

2 个答案:

答案 0 :(得分:2)

这里有不同的可能性。第一种可能性是将表单的action属性直接设置为外部URL并添加returnurl隐藏的输入参数。提交表单后,它会将数据POST到外部URL进行处理,完成处理外部URL后,将使用returnurl参数重定向回主页。

另一种可能性是使用WebClient在POST操作中调用外部URL来发送数据以进行处理并返回相同的视图:

[HttpPost]
public ActionResult Index(SomeViewModel model)
{
    using (var client = new WebClient())
    {
        var values = new NameValueCollection 
        {
            { "param1", model.Property1 },
            { "param2", model.Property2 },
        };
        // send values for processing to the external url
        var result = client.UploadValues("http://externalurl.com", values);
        // TODO: analyze result
    }
    return View(model);
}

答案 1 :(得分:0)

您需要为此手动编程。例如,您可以将returnUrl参数(例如,通过查询字符串)传递给第二页,该页面将负责读取此参数并执行其自身的重定向。