Javascript MVC3Razor弹出窗口
我需要打开一个新的弹出窗口点击一个按钮在一个视图。新窗口应重定向到特定控制器中的特定actionmethod。我还需要为新弹出窗口的大小提供属性。 我一直在尝试以下代码:Javascript MVC3Razor弹出窗口,javascript,asp.net-mvc-3,razor,internet-explorer-7,Javascript,Asp.net Mvc 3,Razor,Internet Explorer 7,我需要打开一个新的弹出窗口点击一个按钮在一个视图。新窗口应重定向到特定控制器中的特定actionmethod。我还需要为新弹出窗口的大小提供属性。 我一直在尝试以下代码: <input type="button" name = "ClickMe" Value="ClickMe" onclick= "javascript:window.open('/Home/Create/','Customer Search',height='window.screen.height - 100', wid
<input type="button" name = "ClickMe" Value="ClickMe" onclick= "javascript:window.open('/Home/Create/','Customer Search',height='window.screen.height - 100', width='200',left='window.screen.width - 250' ,top='10',status='no',toobar='no',resizable='yes',scrollbars='yes')"/>
按一下按钮,什么也没发生。我发现以下Javascript错误:
行:19字符:1
错误:参数无效
代码:0 当我检查呈现的HTML的ViewSource时,我发现该行就是呈现按钮的那一行。
我正在使用WindowsVista和IE7。我正在VS 2010中使用Razor Engine开发MVC 3提供的HTML在
onclick
中的字符上有一些怪癖。尝试并编辑以下内容(为便于阅读,添加了换行符):
显著变化:
window.open()
的第三个参数是一个JavaScript字符串,其中插入了计算值
- 配置字符串中的参数已被删除
toobar
→ <代码>工具栏
根据他似乎已经一针见血的说法:
var windowObjectReference = window.open(strUrl, strWindowName[, strWindowFeatures]);
strWindowName
这是刚刚命名新窗口的字符串。当
的target属性
尊重html。尊重javascript。尊重您正在编写的框架,它已经从第二版到第三版进行了两大更改(验证和ajaxity),以应用更新、现代的原则。如果遵循这一原则(借助vs javascript synthax突出显示),您可以在较少的时间内纠正该错误
...
$(函数(){
$('#ClickMe')。单击(函数(){
window.open('/Home/Create/','CustomerSearch','height='+(window.screen.height-100)+',width=200,left='+(window.screen.width-250)+',top=10,status=no,toolbar=no,resizable=yes,scrollbars=yes');
});
});
正如我发现的,这是IE中窗口名中的空格问题——“客户搜索”。如果您删除该空间-“CustomerSearch”,它也将在IE中开始工作
<script type="text/javascript">
//script for loading value to division
$(function () {
$('form').submit(function () {
$.ajax({
url: this.action, //you can redirect to your specific controller here..
type: this.method,
data: $(this).serialize(),
success: function (result) {
$('#popUp').html(result);
}
});
return false;
});
});
</script>
<script type="text/javascript">
//Script for pop up dialog.
$(function () {
$('form').submit(function () {
$("#popUp").dialog({
modal: true,
resizable: false
});
});
});
</script>
<div id="popUp" >
</div>
//用于将值加载到分区的脚本
$(函数(){
$('form')。提交(函数(){
$.ajax({
url:this.action,//您可以在此处重定向到您的特定控制器。。
类型:this.method,
数据:$(this).serialize(),
成功:功能(结果){
$('#popUp').html(结果);
}
});
返回false;
});
});
//弹出对话框的脚本。
$(函数(){
$('form')。提交(函数(){
$(“#弹出窗口”)。对话框({
莫代尔:是的,
可调整大小:false
});
});
});
感谢您的及时回复。我不想这么说,但在“scrollbars=yes”之后立即缺少一个“'”。即使经过整改,问题依然存在。还有其他建议吗?@Vipul-Ouh,你说得对。它现在已经修复,但我相信archil已经用窗口名(CustomerSearch
)击中了要害,参见:“此字符串参数不应包含任何空格。”谢谢。现在我想起了两年前我做的一件事,那就是必须提供窗口名才能打开新窗口。感谢您的及时回复。但问题依然存在。
<script type="text/javascript">
//script for loading value to division
$(function () {
$('form').submit(function () {
$.ajax({
url: this.action, //you can redirect to your specific controller here..
type: this.method,
data: $(this).serialize(),
success: function (result) {
$('#popUp').html(result);
}
});
return false;
});
});
</script>
<script type="text/javascript">
//Script for pop up dialog.
$(function () {
$('form').submit(function () {
$("#popUp").dialog({
modal: true,
resizable: false
});
});
});
</script>
<div id="popUp" >
</div>