asp.net表单提交问题

时间:2009-09-04 16:50:30

标签: php asp.net forms

我需要完成以下操作,并需要帮助#2下面的

  1. 我的网站有一个包含表单的页面,提交的表单数据需要写入我网站上的数据库。
  2. 在将数据写入数据库之后,需要将表单上提交的相同数据发送到在另一个站点上处理它的页面,以便表单提交来自该另一个站点上的页面。在另一个站点上处理它的页面是一个php页面。

2 个答案:

答案 0 :(得分:1)

您的问题的理想解决方案是您在php网站上创建一个Web服务,并且您的asp.net代码调用Web服务。 http://en.wikipedia.org/wiki/Web_service

使用PHP创建Web服务:http://www.xml.com/pub/a/ws/2004/03/24/phpws.html

在ASP.Net中调用Web服务:http://www.codeproject.com/KB/webservices/WebServiceConsumer.aspx

或者你可以从你的asp.net到php网站创建一个http请求,将所有表单元素发布到php网站。

以下是一个示例:http://www.netomatix.com/httppostdata.aspx

注意:您几乎可以保证在中长期内遇到第二种方法的问题,除非您无法控制php网站,否则我不推荐它。

答案 1 :(得分:1)

有点不清楚,但我的猜测是,在将数据写入数据库后,你正在尝试对另一个.php页面进行“表单发布”。

您可以从this wonderful Scott Hanselman article获取更多信息,但以下是摘要:

public static string HttpPost(string URI, string Parameters) 
{
   System.Net.WebRequest req = System.Net.WebRequest.Create(URI);
   req.Proxy = new System.Net.WebProxy(ProxyString, true);
   //Add these, as we're doing a POST
   req.ContentType = "application/x-www-form-urlencoded";
   req.Method = "POST";
   //We need to count how many bytes we're sending. Post'ed Faked Forms should be name=value&
   byte [] bytes = System.Text.Encoding.ASCII.GetBytes(Parameters);
   req.ContentLength = bytes.Length;
   System.IO.Stream os = req.GetRequestStream ();
   os.Write (bytes, 0, bytes.Length); //Push it out there
   os.Close ();
   System.Net.WebResponse resp = req.GetResponse();
   if (resp== null) return null;
   System.IO.StreamReader sr = new System.IO.StreamReader(resp.GetResponseStream());
   return sr.ReadToEnd().Trim();
}