2014-01-15 37 views
0

我是新來的主幹。除了當我點擊回到第一頁時,請使所有的工作都正常。我無法弄清楚如何正確加載它。這是在.net mvc應用程序中,因此索引頁面會加載佈局頁面。如果我在Home函數中調用Index頁面,瀏覽器將進入無限循環,加載包含以下代碼的佈局頁面,該代碼將重新載入索引。骨幹處理索引頁面佈局

 <script> 
     var MainRouter = Backbone.Router.extend ({ 
      routes: { 
       '': 'home', 
       'Home': 'HHome', 
       'About': 'AAbout', 
       'Contact': 'CContact' 
      }, 
      home: function() { 
       //WHAT TO DO HERE? 

      }, 
      HHome: function() { 
       ajaxCall('/Home/Home'); 
      }, 
      AAbout: function() { 
       ajaxCall('/Home/about'); 
      }, 
      CContact: function() { 
       ajaxCall('/Home/Contact'); 
      } 
     }); 

     //define our new instance of router 
     var appRouter = new MainRouter(); 

     Backbone.history.start({ pushState: true }); 


     $(document).ready(function() { 
      $('a').click(function(event) { 

       event.preventDefault(); 

       var url = $(this).attr('href'); 

       appRouter.navigate(url, { trigger: true }); 
      }); 
     }); 

任何建議將是偉大的。 Thanx提前。

+0

你是什麼意思「,那麼索引頁面加載佈局頁面?' –

+0

在.net MVC中,您有一個佈局頁面,您可以在每個頁面上放置標準內容。 IE標誌/導航欄/頁腳。根據您建立網站的方式,只有索引會加載佈局(在Spa中)或每個頁面都會加載。我不認爲有一種方法可以在不使用常規cshtml頁面的情況下加載佈局。 – VirtualLife

回答

0

如果你指的是你的ajaxCall返回MVC視圖,你只需要通過將以下的意見頂部禁用這些視圖的佈局:

@{ 
    Layout = null; 
} 
+0

我將如何獲得頁面上的佈局? – VirtualLife

+0

佈局將默認添加。這將覆蓋該佈局,因此不會爲該特定視圖呈現佈局。 –

+0

東西必須告訴MVC調用佈局頁面。如果每個視圖都有Layout = null,則佈局永遠不會被調用。並不是說沒有辦法解決這個問題,但我一直沒有找到1. – VirtualLife