我需要通过以下JavaScript代码从MVC视图调用ASPX页面,还需要传递一些参数作为查询字符串,
function OpenTest() {
var width = (screen.availWidth - 700).toString();
var height = (screen.availHeight - 100).toString();
var param1 = "Test";
var baseUrl = '@Url.Content("~/Test/Test.aspx?")';
window.open(baseUrl + "param1=" + param1);
}
在ASPX页面中,
if(!string.IsNullOrWhiteSpace(Request.QueryString["param1"]))
{
string s1 = Request.QueryString["param1"];
}
我可以通过上面的代码调用ASPX页面并读取参数值,但是当我添加“window.open”的其他属性时,我无法读取查询字符串,问题是我应该在上面的属性下面放置代码,这样我也可以在ASPX页面中读取查询字符串值,
"mywindow", "width=" + width + ",height=" + height + ",toolbar=no,location=no,directories=yes,status=no," +
"menubar=no,scrollbars=yes,copyhistory=yes,resizable=yes" + ",screenX=0,screenY=0,left=0,top=0"
答案 0 :(得分:0)
window.open()
的语法是:
window.open('url/for/page/here.aspx', 'targetName', 'options');
targetName
可以是“_self”,“_ blank”,“_ parent”,就像链接的任何目标属性一样,或者具有用于命名窗口的标识符,因此您可以在打开时重复使用窗口同名。
使用任何限制窗口的选项来调用window.open()
时,如width=100
它假定必须禁用所有其他选项,因此您不必放置要禁用的属性
修复您的选择:
window.open(baseUrl + "param1=" + param1,
"mywindow",
"width=" + width + ",height=" + height + ",directories=yes,scrollbars=yes,copyhistory=yes,resizable=yes,screenX=0,screenY=0,left=0,top=0");
另外需要注意的是,所有选项都必须用逗号分隔,不能有空格。有些浏览器忽略/ missinterpret选项带空格。
另外,不要忘记将变量转义为与url一起传递。