我需要你的帮助......
我正在制作一个带有新窗口的弹出窗口,它包含一个像
这样的句子<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.
我该如何处理?
还有其他方法可以发送长查询字符串并将其接收到打开窗口吗?
答案 0 :(得分:1)
实际上,当我们提出请求时,它会考虑作为GET请求,并且在获取字符数的请求方面存在限制,因此它会产生这种错误。
因此,不要在查询字符串中传递该值,而是尝试将该值存储在父页面的隐藏字段中,并从您从父页面打开的页面访问该值。