我想这样做是因为我需要发布到国外网站,并且希望避免在表单中设置隐藏的输入,因为用户可能会更改其中的值(或者其他人可能会为他执行此操作)
我的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",);
}
}
答案 0 :(得分:1)
如果您想保留服务器端的所有内容,可以查看here。这是一种以编程方式执行POST的简单方法。通过这种方式,您将处理所有服务器端的外部POST。请注意,这将使您的服务器执行POST。
在您的控制器中,您可以执行此操作:
[HttpGet]
public string MyActionPostingToRemote()
{
string postResult = HttpPost (remoteUrl, remotePostQueryString);
return postResult;
}
HttpPost是您可以在我的链接中找到的功能。
答案 1 :(得分:0)
现代浏览器不允许跨站点调用。因为安全。