为window.open

时间:2018-03-30 05:50:37

标签: javascript asp.net

我需要你的帮助......

我正在制作一个带有新窗口的弹出窗口,它包含一个像

这样的句子
<p>ABCD EFG HIJKLMNOP</p>
<br />
<p>QR S T U V?? WS YNG</p>
so on...

(它位于javascript变量var contents

在我的javascript中,我将这个长字符串发送到ASP.NET Core Controller以打开新窗口。

的JavaScript

previewWindowUrl = "/Controller/Popup?strContents=" + encodeURIComponent(contents);
var myWindow = window.open(previewWindowUrl, "", "scrollbars=no,width=1000px, ...");

ASP.NET核心控制器

public IActionResult Popup(string strContents) 
{

    // some process for manupulating strContents        

    return View();
}

但是,当我向Controller Action发送太长的字符串时,页面显示错误

HTTP Error 404.15 - Not Found
The request filtering module is configured to deny a request where the query string is too long.

我该如何处理?

还有其他方法可以发送长查询字符串并将其接收到打开窗口吗?

1 个答案:

答案 0 :(得分:1)

实际上,当我们提出请求时,它会考虑作为GET请求,并且在获取字符数的请求方面存在限制,因此它会产生这种错误。

因此,不要在查询字符串中传递该值,而是尝试将该值存储在父页面的隐藏字段中,并从您从父页面打开的页面访问该值。