在扩展 mvc 网站时,我需要调用外部联系表单并传递 HttpPost 参数。
var httpWReq = (HttpWebRequest)WebRequest.Create("url");
var encoding = new ASCIIEncoding();
var postData = CreatePostData();
var data = encoding.GetBytes(postData);
using (var stream = httpWReq.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
var response = (HttpWebResponse)httpWReq.GetResponse();
var rStream = response.GetResponseStream();
此时,我得到了一个响应,其中包含 a) 不同的参数,例如响应中的请求 URL 和 b) 来自 httpWReq.GetRequestStream()
的原始 html 字符串,其中包含响应页面。 html 字符串中的隐藏字段告诉我,我的参数已正确接收。
但是现在如何继续呢?如果我重定向到 url,参数就会消失。如果我返回一个 ContentResult 并将响应中的 html 字符串作为参数,则会显示该站点但没有 css 样式。 css 是相对链接的,本地部署的 mvc 应用程序正在查看 localhost:port/site.css
以获取资源。
提前致谢
最佳答案
最后,我找到了解决问题的另一种方法。对于那些感兴趣的人:
我在我的 Razor 模板中创建了另一个表单
<form action="external-url.com" name="form_contact" id="form_contact"
method="POST" target="blank">
将我的所有参数作为 HtmlHelpers 的 Html.Hidden
字段
@Html.Hidden("Parametername", Model.ParameterXy)
具有来 self 的模型的绑定(bind)值。
表单通过 JavaScript 提交。
问候
关于c# - 传递 HttpPost 参数时导航到外部 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20608085/