如何在点击链接时将参数传递给局部视图?

时间:2017-07-11 05:14:46

标签: jquery asp.net-mvc-5

您好我正在开发MVC5应用程序。我有一个局部视图,它基本上是弹出窗口。我打电话点击下面的链接按钮。

window.open("/UploadDocument/ScannerUpload", "popupWindow", "width=1000,height=900,scrollbars=yes");

以下是我的ScannerUpload.cshtml文件。

<html>
<head>
    <script type="text/javascript">
        {
            function getParameterByName(name, url) {
                if (!url) url = window.location.href;
                name = name.replace(/[\[\]]/g, "\\$&");
                var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
                    results = regex.exec(url);
                if (!results) return null;
                if (!results[2]) return '';
                return decodeURIComponent(results[2].replace(/\+/g, " "));
            }
            var foo = getParameterByName('Param1');
        }
    </script>
    <meta name="viewport" content="width=device-width" />
    <meta http-equiv="X-UA-Compatible" content="IE=8" />  
    <title>ScannerView</title>
</head>
<body>
    <div>
        <iframe src="http://Scanner.aufytech.com/C3CKYC Scanner.xbap?" width="1000" height="600" scrolling="auto"></iframe>      
    </div>
</body>
</html>

我想向ScannerUpload.cshtml文件发送一些参数。我可以知道有什么办法可以在ScannerUpload.cshtml附加params吗?任何帮助,将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:1)

所以,首先要做的是弄清楚如何在第一次调用中传递参数。所以这个:

window.open("/UploadDocument/ScannerUpload", "popupWindow", 
"width=1000,height=900,scrollbars=yes");

需要成为这个:

window.open("/UploadDocument/ScannerUpload?Param1=A&Param2=B", "popupWindow", 
"width=1000,height=900,scrollbars=yes");

你是怎么做的取决于你,因为我不知道这些参数来自哪里。如果它们来自html页面上的字段,则需要使用javascript事件动态更新window.open

现在您需要在第二个窗口中选择这些参数。回想起来,我意识到我们不需要解析我们可以抓住URL末尾的参数

因此,请大量参考:dynamically set iframe src iFrame onload JavaScript event

这样的事情可能有效(未经考验的抱歉):

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <meta http-equiv="X-UA-Compatible" content="IE=8" />  
    <title>ScannerView</title>
</head>
<body>
    <div>
        <iframe id="myIframe" src="" width="1000" height="600" scrolling="auto" onLoad="fUpdateiFrame();"></iframe>      
    </div>

    <script type="text/javascript">
            function fUpdateiFrame() {
                if (!url) url = window.location.href;
                document.getElementById('myIframe').src = "http://Scanner.aufytech.com/C3CKYC Scanner.xbap?" + url.split("?")[1];
            }
    </script>

</body>
</html>

所做的更改:

  1. 为iframe元素添加ID,以便我们可以在javascript
  2. 中引用它
  3. 向iframe元素添加一个事件,以便在准备就绪时调用javascript函数
  4. 在设置新的iframe src值之前,添加一些用于删除查询参数的javascript(在?之后的所有内容)并将其添加到URL中
  5. 如果第一次有效,我会感到很惊讶 - 请回复任何问题。

相关问题