2014-01-15 65 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