iframe在设置src属性时调用Action方法两次

时间:2014-06-17 13:42:34

标签: javascript jquery asp.net-mvc-4 iframe

我从控制器端通过iframe.src属性调用action方法,它返回部分视图,但是它调用了两次是什么原因可以让任何正文帮助我

在这里找到我的代码

 $('#testdailog').dialog({
        autoOpen: false,
        title: 'Split Fax',
        height: 'auto',
        width: '80%',
        position: ['top', 50],
        draggable: false,
        show: 'blind',
        hide: 'blind',
        modal: true,
        open: function (event, ui) {
            var frameSet = document.getElementById("testdailogFrame");
            frameSet.src='@Url.Action("TestPage", "Fax")';
 },
            close: function (event, ui) {
                var frameSet = document.getElementById("testdailogFrame");
                frameSet.src="about:blank";

        });

1 个答案:

答案 0 :(得分:1)

通过更改iframe内容更改的代码而不是src属性来解决此问题

 $('#testdailog').dialog({
        autoOpen: false,
        title: 'Split Fax',
        height: 'auto',
        width: '80%',
        position: ['top', 50],
        draggable: false,
        show: 'blind',
        hide: 'blind',
        modal: true,
        open: function (event, ui) {
 $.ajax({
                    url: '@Url.Action("TestPage","Fax")',
                    type: 'GET',    
                    cache:false,
                    success: function(data){
                        var frameSet = document.getElementById("testdailogFrame");
                        var iframedoc = frameSet.document;

                        if (frameSet.contentDocument)
                            iframedoc = frameSet.contentDocument;
                        else if (frameSet.contentWindow)
                            iframedoc = frameSet.contentWindow.document;

                        if (iframedoc){
                            iframedoc.open();
                            iframedoc.writeln(data);
                            iframedoc.close();
                        }
                    },
                    error: function () {
                        window.location.href = '@Url.Action("Index","Error")';
                    }
                });
            },

}
});