Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript。打开包含参数数组的新窗口_Javascript_Asp.net Mvc - Fatal编程技术网

JavaScript。打开包含参数数组的新窗口

JavaScript。打开包含参数数组的新窗口,javascript,asp.net-mvc,Javascript,Asp.net Mvc,我有一个asp.net mvc 3应用程序,它带有一些操作方法,可以处理GET请求并返回页面。代码如下所示: [HttpGet] public ActionResult Print(IEnumerable<string> arrayOfIds) { ....................... return View(someModel); } 其中URLARY可以非常大。如何在不使用URL字符串(可能使用HTTP请求的内容)的情况下将此数据传递给操作方

我有一个asp.net mvc 3应用程序,它带有一些操作方法,可以处理GET请求并返回页面。代码如下所示:

[HttpGet]
public ActionResult Print(IEnumerable<string> arrayOfIds)
{
    .......................
    return View(someModel);     
}
其中URLARY可以非常大。如何在不使用URL字符串(可能使用HTTP请求的内容)的情况下将此数据传递给操作方法?我需要它,因为URL太大,浏览器无法使用它

UPD:可能是我的解释不太清楚。。。我解决了我的问题。这是JavaScript代码:

$.ajax({
        url: '@Url.Action("Print","Appointments")',
        type: "POST",
        data: { listOfIds : listOfIds },
        dataType: "text",
        traditional: true,
        success: function (data) {
            printWindow = window.open('', 'Print');
            printWindow.document.write(data);
        }
    });

此外,我还将Action方法的属性从HttpGet更改为HttpPost。

您最好将表单发布到当前页面(从而通过POST将所有内容传输到服务器端),然后使用RedirectToAction并在服务器端传递数据

这是一个更好的方法。您可以使用Javascript发布表单。因此,您将使用
form.submit()

编辑:


target=“\u blank”
添加到表单标签中,以在新窗口中打开结果。

您最好将表单发布到当前页面(从而通过POST将所有内容传输到服务器端),然后使用RedirectToAction并在服务器端传递数据

这是一个更好的方法。您可以使用Javascript发布表单。因此,您将使用
form.submit()

编辑:


target=“\u blank”
添加到表单标记中,以在新窗口中打开结果。

我认为您的问题与JavaScript没有多大关系。URL限制是HTTP GET的一项功能。您需要使用HTTP POST,这是使用
window.open()无法做到的

然而,你可以这样做

window.open('about:blank', 'Print', 'width=620,height=410,scrollbars=yes');
document.myForm.target='Print';
document.myForm.urlArray=urlArray;
document.myForm.submit();
这将打开一个新窗口,并将现有HTML表单(method=“post”)发布到新窗口。上面的示例假设有一个名为“urlArray”的隐藏字段,但您只需要提供Action方法所需的任何内容


如果页面上已经有一个用于捕获URLARY的现有表单,您可以对其进行整理,只需将表单定位到由表单的onsubmit事件处理程序创建的新窗口即可。

我认为您的问题与JavaScript没有太大关系。URL限制是HTTP GET的一项功能。您需要使用HTTP POST,这是使用
window.open()无法做到的

然而,你可以这样做

window.open('about:blank', 'Print', 'width=620,height=410,scrollbars=yes');
document.myForm.target='Print';
document.myForm.urlArray=urlArray;
document.myForm.submit();
这将打开一个新窗口,并将现有HTML表单(method=“post”)发布到新窗口。上面的示例假设有一个名为“urlArray”的隐藏字段,但您只需要提供Action方法所需的任何内容


如果页面上已有一个用于捕获URLARY的现有表单,则可以对其进行整理,您只需将表单指向由表单的onsubmit事件处理程序创建的新窗口。

URLARY中的哪些内容导致它变得如此之大?URLARY中的哪些内容导致它变得如此之大?我需要打开新窗口,因为我想在新窗口中显示一些信息。请参见此>我需要打开新窗口,因为我想在新窗口中显示一些信息。请参见此>