使用ASP.NET MVC创建一个完全基于ajax的网站

时间:2014-01-25 07:02:11

标签: jquery ajax asp.net-mvc asp.net-mvc-4 url-routing

我计划的是创建一个完全基于ajax请求的网站。但是我脑子里有一些问题,

1-我应该使用javascript路由引擎,库ext吗?我真的需要它吗?因为我正在研究的网站非常庞大,肯定会长大。

2-我将只通过ajax加载每个页面内容,但我不会使用JSON,我打算使用PartialViews那可以吗?

3-

  <script type="text/javascript">
       $("a.ajax").click(function() {
           $(".placeholder").load(this.href);
           return false;
       });

   </script>
   <a class="ajax" href="/Home/Products/2">Products</a>
   <div class="placeholder"></div>

这是我的过程的简单代码,问题在于历史,当用户想要回来时,它将失败。我怎样才能解决这个问题呢?

3 个答案:

答案 0 :(得分:3)

  

1-我应该使用javascript路由引擎,库ext吗?我真的吗   需要它?因为我正在研究的网站非常庞大而且会   肯定会长大。

如果客户端上有很多逻辑,可以考虑使用一些MVVM javascript框架。 KnockoutJSAngularJS是一些受欢迎的选择。

  

2-我将通过ajax加载每个页面内容,但我不会使用JSON,   我打算使用PartialViews就行了吗?

您可以使用HTML5 History API,这样您就可以在每次发出AJAX请求时向浏览器历史记录添加条目。

以下是一个例子:

$("a.ajax").click(function() {
    var href = this.href;
    var title = $(this).text();
    $(".placeholder").load(href, function() {
        // Add an entry in the browser history
        history.pushState(null, title, href);
    });
    return false;
});

答案 1 :(得分:0)

尝试查看angularjs。 AngularJs + asp.net web api将是一个很好的方法

答案 2 :(得分:0)

回答q1:最好使用像angular.js这样的mvvm框架,但你也可以自己处理所有内容,当然如果你想处理这些事情你必须编写更多代码! 回答q2:没关系,只需通过ajax调用调用一个action方法,并在action方法中渲染一个partialview,并在你想要的任何地方更新你的成功函数,我也使用这个方法:)