MVC 3 Razor PopUp窗口

Vip*_*pul 5 javascript internet-explorer-7 razor asp.net-mvc-3

我需要在点击视图中的按钮时打开一个新的弹出窗口.新窗口应重定向到特定控制器中的特定操作方法.我还需要提供新弹出窗口大小的属性.我一直在尝试以下代码:

<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')"/>
Run Code Online (Sandbox Code Playgroud)

点击按钮,没有任何反应.我得到以下Javascript错误:

行:19个
字符:1个
错误:参数无效.
代码:0

当我检查HTML渲染的ViewSource时,我发现该行是渲染按钮的那一行.我在IE 7中使用Windows Vista.我正在使用VS 2010中的Razor Engine处理MVC 3

arc*_*hil 14

尊重HTML.尊重javascript.尊重您正在编写的框架,它已经从第2版到第3版进行了两次重大更改(验证和ajaxity)以应用更新的现代原则 - Unobtrusive Javascript.如果您遵循该原则(在vs javascript synthax突出显示的帮助下),您可以设法在更短的时间内纠正该错误.

    <input type="button" id="ClickMe" name = "ClickMe" Value="ClickMe" />
...
    <script type="text/javascript">
            $(function () {
                $('#ClickMe').click(function () {
                   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');
                });
            });
    </script>
Run Code Online (Sandbox Code Playgroud)

正如我发现的那样,IE中窗口名称中的空间问题 - "客户搜索".如果删除该空间 - "CustomerSearch",它也将开始在IE中工作


jen*_*ram 5

提供的HTML对于中的'字符有一些怪癖onclick.尝试并编辑以下内容(为了便于阅读而添加了换行符):

<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,toolbar=no,resizable=yes,scrollbars=yes');"/>
Run Code Online (Sandbox Code Playgroud)

显着变化:

  • 第三个参数window.open()一个 JavaScript字符串,其中包含插入计算的值
  • 配置字符串中的参数已'删除
  • toobartoolbar.

基于archil的更新,似乎他已经达到了目标:

var windowObjectReference = window.open(strUrl, strWindowName[, strWindowFeatures]);
Run Code Online (Sandbox Code Playgroud)

strWindowName
这是仅命名新窗口的字符串.当指定<a>元素或a 的目标属性时,此类字符串可用作链接和表单的目标<form>.此字符串参数不应包含任何空格.strWindowName没有指定新窗口的标题.(来源)