如何使用Javascript在iframe中设置src

时间:2011-09-23 15:33:15

标签: javascript asp.net-mvc

我正在开发一个MVC项目,目前正在开发的功能是DropDownList,每个选项都绑定到一个URL。当用户选择一个项目并按下提交时,预期的行为是页面在同一页面上加载iframe,并将特定URL与所述框架中显示的选择相关联。

控制器:

Function Configuration() As ActionResult

        Dim configList As List(Of String) = New List(Of String)
        configList.Add("10GBaseLX4")
        configList.Add("10GFC")
        configList.Add("10GigE")
        configList.Add("100BaseFX")

        ViewData("cprotocols") = New SelectList(configList)
        Return View()

    End Function

    Public Function Handle(ByVal cprotocols As String) As String
        Return "http://www.configlist.com/" + cprotocols + "_Config.xml"
    End Function

查看:

<% Using (Ajax.BeginForm("Handle", New AjaxOptions With {.OnComplete = "showConfig"}))%>
    Select a configuration file to view: <%= Html.DropDownList("cprotocols") %>
        <br />

        <input type="submit" value="Submit" />
        <br />
        <%End using %>
        <br />
        <script type="text/javascript">
        function showConfig(cprotocols)
        {
            var param1 = cprotocols;
            document.write('<iframe src="' + param1 + '"></iframe>');
        }
        </script>
    </p>

这就是我现在所看到的,但最终发生的事情是:

  1. 按下提交后出现框架;理想情况下,我希望框架已经存在于页面上,然后在单击提交后请求在其中加载url。这可能吗?

  2. 弹出一个新页面,框架在那里,但我得到一个404“资源不存在”错误(显然是从javascript语法错误)。我的目标是将请求的文件加载到与DDL相同的屏幕上。

  3. 网址完全由Handle()操作处理。

1 个答案:

答案 0 :(得分:0)

最好将它作为现有HTML的路径(可能在您的母版页中)放入您的页面中,然后在选择发生时使用JavaScript设置SRC。

<iframe id="frm1" src="about:blank"></iframe>

JS:

document.getElemenyById('frm1').src="...."