做的一个功能是在A页面导入excel文件,导入成功后跳转到B页面,并在B页面显示导入的数据
A页面:
var url ="AInfo.aspx";
var params = { "参数名称": response.d};
Post1(url, params);
function Post1(url, params) {
// 创建form元素
var temp_form = document.createElement("form");
// 设置form属性
temp_form.action = url;
temp_form.target = "_self";
temp_form.method = "post";
temp_form.style.display = "none";
// 处理需要传递的参数
for (var x in params) {
var opt = document.createElement("textarea");
opt.name = x;
opt.value = params[x];
temp_form.appendChild(opt);
}
document.body.appendChild(temp_form);
// 提交表单
temp_form.submit();
}
B页面接收参数:
'POST方式已经给加密了,需解密
Protected Overrides Sub PageLoad()
Dim sParam As String = GetPostParam()
If sParam IsNot Nothing OrElse Not String.IsNullOrWhiteSpace(sParam) Then
ViewState("AAAA") = Server.UrlDecode(sParam)
End If
End Sub
Private Function GetPostParam() As String
Dim sParam As String = ""
Dim byts As Byte() = New Byte(HttpContext.Current.Request.InputStream.Length - 1) {}
If byts.Length > 0 Then
HttpContext.Current.Request.InputStream.Read(byts, 0, byts.Length)
Dim sReq As String = System.Text.Encoding.[Default].GetString(byts)
sParam = sReq.Split("=")(1)
End If
Return sParam
End Function
VB与C#代码互转:https://converter.telerik.com/
如果是GET方式,参数过长,需要在web.config设置
<system.web>
<customErrors mode="Off"/>
<httpRuntime maxRequestLength="20480" requestValidationMode="2.0" maxQueryStringLength="102400" />
</system.web>
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxQueryString="102400"/>
</requestFiltering>
</security>
</system.webServer>
调用:这个另起窗口打开,上面是在本页面打开
var params = { "addressee": receivers, "subject": Subject, "body": Body};
OpenPostWindow("../EmailInfo.aspx", params, "EmailShow")
方法:
function OpenPostWindow(url, params, name) {
var tempForm = $("<form>");
tempForm.attr("id", "tempForm1");
tempForm.attr("style", "display:none");
tempForm.attr("target", name);
tempForm.attr("method", "post");
tempForm.attr("action", url);
for (var x in params) {
var opt = document.createElement("input");
opt.name = x;
opt.value = params[x];
tempForm.append(opt);
}
tempForm.on("submit", function () { openWindow(name); });
tempForm.trigger("submit");
$("body").append(tempForm);
tempForm.submit();
$("tempForm1").remove();
};
function openWindow(name) {
window.open('about:blank', name);
};
后台:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim sParam As String() = GetPostParam()
If sParam IsNot Nothing Then
lblAddressee.Text = sParam(0).Substring(sParam(0).IndexOf("=") + 1)
lblSubject.Text = sParam(1).Substring(sParam(1).IndexOf("=") + 1)
lblHTMLBody.Text = sParam(2).Substring(sParam(2).IndexOf("=") + 1)
End If
End Sub
Private Function GetPostParam() As String()
Dim sParam As String() = Nothing
Dim byts As Byte() = New Byte(HttpContext.Current.Request.InputStream.Length - 1) {}
If byts.Length > 0 Then
HttpContext.Current.Request.InputStream.Read(byts, 0, byts.Length)
Dim sReq As String = Server.UrlDecode(Encoding.[Default].GetString(byts))
sParam = sReq.Split("&")
End If
Return sParam
End Function