handyzhu 2015-10-27 02:40 采纳率: 0%
浏览 537

asp.net 使用模板页Master后,子页面打开新页面,获取不了返回值

内容页:
var url = "SelectContractNo1.aspx?PersonId=" + ticks;
var aim=window.showModalDialog(url)

返回值页面:
setTimeout(function(){window.returnValue='" + aaa + "'; self.close();}, 100);

aim 不能获得返回值

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-04 14:09
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    在ASP.NET中,当使用模板页Master时,子页面(通常是<%@ Master %>标签内的页面)将从父页面的URL中获取参数。然而,如果你尝试在一个子页面上设置一个自定义事件来处理返回值,那么这个返回值可能不会被正确地传递到父页面。

    以下是一个例子,说明如何在子页面上实现这一功能:

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>标题</title>
        <script type="text/javascript">
            function handleReturn() {
                // 获取子页面的返回值
                var returnValue = document.getElementById("returnValue").value;
                
                // 在父页面中调用这个函数以处理返回值
                window.parent.handleReturn(returnValue);
            }
            
            function handleReturnCallback(returnValue) {
                alert('返回值: ' + returnValue);
            }
        </script>
    </head>
    <body id="body" runat="server">
        <form id="form1" runat="server">
            <input type="hidden" id="returnValue" value="" />
            <button onclick="handleReturn()">点击发送返回值</button>
        </form>
    </body>
    </html>
    

    在这个例子中,我们创建了一个按钮,点击它会触发handleReturn()函数。然后,我们为这个函数设置了回调函数handleReturnCallback(),这样当我们收到返回值时,就会弹出一个警告框显示返回值。

    现在,在你的主页面上,你可以使用JavaScript和jQuery等库来调用这个回调函数,从而在父页面上获取返回值。例如:

    $(document).ready(function () {
        $("#form1 button").click(function (event) {
            event.preventDefault();
            $.ajax({
                url: "@Url.Action("GetReturn", "YourController")",
                data: { returnField: "myReturnValue" },
                success: function (data) {
                    console.log(data);
                    $("#returnValue").val(data);
                },
                error: function () {
                    console.error("Error occurred while retrieving return value.");
                }
            });
        });
    });
    

    这段代码会在页面加载完成后执行,并且会阻止默认的表单提交行为。然后,它通过AJAX请求向GetReturn方法发送数据,并在成功接收到响应时更新#returnValue元素中的值。如果发生错误,则会打印一条错误消息。

    评论

报告相同问题?