我有一个表单,提交时应重定向到外部URL以对表单数据执行某些操作,并在成功提交后保留在主页上。我使用重定向,但这将使我的第二个选项成为可能,但不是我的第一个选项。请帮忙..
答案 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参数(例如,通过查询字符串)传递给第二页,该页面将负责读取此参数并执行其自身的重定向。