ibcadmin 发表于 2014-7-2 09:06:51

C#后台代码POST并跳转(可跳转到请求页面)

现在网上的C#后台POST都是仅仅将数据发送到指定的链接,但是不能打开页面。
今天楼主共享的方法 是以将form标签在C#后台进行拼接的方式,在拼接JavaScript进行的POST请求数据并且打开页面


            StringBuilder sb = new StringBuilder();
            sb.Append("<form id=\"formData\">");
            sb.Append("<input type=\"hidden\" name=\"interfaceName\" value=\"" + interfaceName + "\">");
            sb.Append("<input type=\"hidden\" name=\"interfaceVersion\" value=\"" + interfaceVersion + "\">");
            sb.Append("<input type=\"hidden\" name=\"tranData\" value=\"" + tranData + "\">");
            sb.Append("<input type=\"hidden\" name=\"merSignMsg\" value=\"" + merSignMsg + "\">");
            sb.Append("<input type=\"hidden\" name=\"merCert\" value=\"" + merCert + "\">");
            sb.Append("</form>");
            sb.Append("<script language= 'javascript'>");
            sb.Append("document.getElementById('formData').method = 'post';");
            sb.Append("document.getElementById('formData').action = '" + url + "';");
            sb.Append("document.getElementById('formData').submit();");
            sb.Append("</script>");
            response.Write(sb.ToString());

这个方法很简单,就是用StringBuilder进行的拼接,拼接成前台代码,并且使用JavaScript的方式跳转。

这里要注意两个个地方:
      1.<input >标签 是你需要的参数, 这个大家应该都能看懂,有几个参数要传就写几个input,并且把Name改掉
      2. 如果此代码写在业务层的话 ,就要传个参数HttpResponse response,因为类中是不能写response.Write的。
         HttpResponse response是你在表示层触发该方法的时候,将 this.response作为参数值传来。


         

页: [1]
查看完整版本: C#后台代码POST并跳转(可跳转到请求页面)