1
我正在開發一個MVC項目,當前正在開發的功能是一個DropDownList,每個選項都綁定到一個URL。當用戶選擇一個項目並按提交時,預期的行爲是頁面在同一頁面上加載一個iframe,其中與在所述框架中顯示的選擇相關聯的特定URL。如何在使用Javascript的iframe中設置src
控制器:
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相同的屏幕上加載。
該URL完全由Handle()操作處理。
我想我仍然在試圖繞到我的頭段是如何通過手柄的'結果()'到腳本(因爲JS設置iframe src基於'Handle()'返回的) – Kevin
Handle在服務器上運行。你需要做的一切都發生在客戶端。讓「showConfig」做你所需要的。如果可以,請留下「處理」。 .NET試圖模糊客戶端和服務器之間的界限,並且經常會對發生什麼事情的時間和地點做出迷惑。這是許多.NET開發人員的禍根。 –