JavaScript。打开包含参数数组的新窗口
我有一个asp.net mvc 3应用程序,它带有一些操作方法,可以处理GET请求并返回页面。代码如下所示: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请求的内容)的情况下将此数据传递给操作方
[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中的哪些内容导致它变得如此之大?我需要打开新窗口,因为我想在新窗口中显示一些信息。请参见此>我需要打开新窗口,因为我想在新窗口中显示一些信息。请参见此>