我正在开发一个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>
这就是我现在所看到的,但最终发生的事情是:
按下提交后出现框架;理想情况下,我希望框架已经存在于页面上,然后在单击提交后请求在其中加载url。这可能吗?
弹出一个新页面,框架在那里,但我得到一个404“资源不存在”错误(显然是从javascript语法错误)。我的目标是将请求的文件加载到与DDL相同的屏幕上。
网址完全由Handle()操作处理。
答案 0 :(得分:0)
最好将它作为现有HTML的路径(可能在您的母版页中)放入您的页面中,然后在选择发生时使用JavaScript设置SRC。
<iframe id="frm1" src="about:blank"></iframe>
JS:
document.getElemenyById('frm1').src="...."