[英]How do I POST data from an asp.net MVC controller to a non-MVC asp.net page?
我们公司的一个部门使用经典的asp.net,而我们的部门正在使用MVC。
我们需要将5个变量传递给他的页面(通过表单提交)。 有人可以展示一个简单的例子,将表单数据从MVC控制器发布到期望表单变量的asp.net页面吗?
如果我正确地阅读此内容,您应该能够在没有任何跨域/应用程序问题的情况下执行此操作。 您希望在控制器中执行此操作,因此您可以使用HttpWebRequest类发布数据。 就目标应用程序而言,它在概念上与从Web浏览器发布相同。
这是一个快速而又脏的片段:
// name / value pairs. field names should match form elements
string data = field2Name + "=" + field1Value + "&" + field2Name+ "=" + field2Value
HttpWebRequest request = (HttpWebRequest) WebRequest.Create(<url to other applications form action>);
// set post headers
request.Method = "POST";
request.KeepAlive = true;
request.ContentLength = data.Length;
request.ContentType = "application/x-www-form-urlencoded";
// write the data to the request stream
StreamWriter writer = new StreamWriter(request.GetRequestStream());
writer.Write(data);
// iirc this actually triggers the post
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
如果您跨越域名或应用程序,我认为您可能会失败。 你可以直接到其他网站并使用查询字符串吗?
或写入表格并指向其他网站。
真的不确定你是否能够发布到其他网站,因为我认为这违反了安全模型。
我可能会错过这个微妙的问题,但是你不能只将MVC表单上的action
设置为将接收它的经典asp页面的url吗?
这些字段将在表单标题中提供,您可以在ASP端读取这些标题。
唯一的问题是如果ASP站点有跨站点请求伪造检测(但如果它们是内部应用程序,则可以在ASP端添加伪造检测代码的例外)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.