2012-08-04 54 views
0

我使用的是asp.net mvc3.visual studio2010。從另一幀刷新一幀

我在我的應用程序中有三個框架。當我單擊不同窗格中的按鈕時,我想刷新另一個窗格。

爲此,我在我的應用程序中使用了frameset。我用像

<frameset cols="25%,*,25%"> 
    <frame name ="f1" src="../SearchCriteria/Index"/> 
    <frame name="f2" src="../SearchResults/Index" /> 
    <frame name="f3" src="../SearchProfile/Index" /> 
</frameset> 

當我調試應用程序,空白頁在我的輸出顯示。你能告訴我我犯了什麼錯誤嗎?

我的觀點路徑是:
視圖 - > SearchCriteria-> Index.cshtml查看 - > SearchResult所 - > Index.cshtml查看 - > SearchProfile - > Index.cshtml

+1

這些日子誰使用框架? – Lucero 2012-08-04 09:24:50

+0

爲我的應用程序,我有三個窗格,我想刷新一個窗格,當我單擊另一個窗格上的按鈕。所以最初我使用iframe加載窗格中的內容,但刷新其他頁面中的一個頁面不可能在iframe ,所以我已經移動到frameset.is有任何其他方式來實現這個? – steve 2012-08-04 09:34:37

+0

我會用JS和AJAX調用來解決這個問題,使用jQuery等庫來提供跨不同瀏覽器的兼容層。 – Lucero 2012-08-04 09:46:34

回答

0

改變幀與ID的div,上框架1有一個帶ID的按鈕,將點擊事件附加到將獲取數據並填充div 2的html的按鈕,這是如何完成的。你會發現現在開發者會變得簡單,代碼少,做得更多。如果你的框架解決方案是可能的(我肯定是這樣),這將是我肯定大多數開發人員只會喘氣的東西,並去OMG WTF爲什麼他只是做XXXX,並使這個東西容易維護:-)

我不想推送任何特定的框架,但是如果您對JSON或XML不滿意,您可以直接使用javascript並返回html內容來完成所有這些工作。

1

由於它是一個ASP.NET MVC應用程序,因此您的項目中應該已經有jQuery庫。爲什麼不使用一些jQuery很酷的功能併爲用戶提供美妙的用戶體驗?

使用DIV而不是FrameSet。包括jQuery庫到這個頁面(或佈局頁,因此,這將是在使用該佈局模板的所有頁面中提供)

<div id="divNavigation"> 
    <ul> 
    <li>@Url.ActionLink("About","About","Home",null, new { @class="lnk"})</li> 
    <li>@Url.ActionLink("Contact","Contact","Home",null, new { @class="lnk"})</li> 
    <li>@Url.ActionLink("Jobs","Jobs","Home",null, new { @class="lnk"})</li> 
    </ul> 
</div> 
<div id="content"> 

</div> 
<script type="text/javascript"> 
    $(function(){ 
    $(".lnk").click(function(e){ 
     e.preventDefault(); 
     $("#content").load($(this).attr("href")); 
    }); 
    }); 
</script> 

什麼上面的代碼的作用是,當用戶在一個錨標記單擊帶有CSS類lnk,它將使用jQuery load函數以異步方式加載鏈接的HREF頁面的內容。所以沒有頁面刷新/重新加載,用戶會看到。