将表单重新发布到不同的操作(不是从我的网站)并添加其他数据

时间:2011-10-25 11:20:28

标签: asp.net asp.net-mvc http

我想这样做是因为我需要发布到国外网站,并且希望避免在表单中设置隐藏的输入,因为用户可能会更改其中的值(或者其他人可能会为他执行此操作)

我的HTML:

<form action="<%=Url.Action("prepare") %>" >
<input type="submit" value="submit" />
</form>

和我的行动

[HttpPost]
public ActionResult Prepare()
{
   if(Request.IsAuthenticated)
   {
      //post to "http://example.com/do" 
      //and add to the request userId = User.Identity.Name
      return //the result of the repost
   }
   else 
   {
      return RedirectToAction("youneedtobeloggedin",);
   }
}

2 个答案:

答案 0 :(得分:1)

如果您想保留服务器端的所有内容,可以查看here。这是一种以编程方式执行POST的简单方法。通过这种方式,您将处理所有服务器端的外部POST。请注意,这将使您的服务器执行POST。

在您的控制器中,您可以执行此操作:

[HttpGet]
public string MyActionPostingToRemote() 
{
  string postResult = HttpPost (remoteUrl, remotePostQueryString);
  return postResult;
}

HttpPost是您可以在我的链接中找到的功能。

答案 1 :(得分:0)

现代浏览器不允许跨站点调用。因为安全。