【问题标题】:Load data from AngularJS controller in ASP.NET MVC without loading entire page在 ASP.NET MVC 中从 AngularJS 控制器加载数据而不加载整个页面
【发布时间】:2015-11-24 14:10:27
【问题描述】:

这是我的操作:

    [HttpPost, ValidateAntiForgeryToken]
    public ActionResult GetData()
    {
            //get data from DB and populate model with data
            return View("Data", model);
    }

观点是:

    @model UI.Models.DataModel

    @{
var grid = new WebGrid(Model.listTest, 
    null, 
    defaultSort: "Id", 
    rowsPerPage: 25, 
    canPage: true, 
    canSort: true
    );
    }

    @if (Model.listTest != null)
    {

     @grid.GetHtml()

    }

在这种特殊情况下,如何在使用 angularjs(而不是 Ajax)调用操作后填充 gridview 而无需加载整个页面?

我没有编写任何代码来使其异步,因为我对 angularjs 一无所知。这将是我学习它的第一步。

更新:

  • 我知道如何在 Ajax 中做到这一点,我想学习 AngularJS。只在 Ajax 中做这些事情会更好吗?还是 AngularJS 比 Ajax 更好?

【问题讨论】:

    标签: javascript c# angularjs asp.net-mvc asynchronous


    【解决方案1】:

    如果您希望将异步 API 调用返回到控制器,我强烈建议您查看 ASP.NET 网站,该网站专门包含有关此主题的信息。

    在我链接到一篇文章之前,最简单的答案是,您需要拆分控制器操作以专门用于视图,以及另一个异步返回数据的操作。

    这是回答您问题的文章的链接:

    http://www.asp.net/mvc/overview/performance/using-asynchronous-methods-in-aspnet-mvc-4

    【讨论】:

    • 开始阅读这篇文章,但是它与 AngularJS 相关吗?
    • 使用 MVC 或 Web API,您可以返回 AngularJS 使用的 JSON。通常,您需要将数据加载到 Angular ViewModel 中的数组中,并通过 AJAX 调用将其填充到控制器的操作中。
    • 对不起,我的问题不在于 backend 而 AngularJS 负责前端。这不是我要找的答案。但是,非常感谢人! 文章讲述了如何将5000个请求压缩到50个请求!
    • 如果您要创建异步请求,您必须在后端和前端双方都工作。本文讨论了如何创建一个异步方法,您将需要该方法来实现您想要的。 Angular 通过 $http 工厂内置了 AJAX 功能,您可以使用它来调用 async 方法。
    猜你喜欢
    • 2017-08-29
    • 2017-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-30
    相关资源
    最近更新 更多