加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – angularjs和mvc5之间通信的最佳方式是什么?

发布时间:2020-12-16 06:33:42 所属栏目:asp.Net 来源:网络整理
导读:我有一些困惑在 angularjs和MVC5之间传输数据.我正在创建单页面应用程序(SPA). 使用angularjs的最佳方法是什么?是MVC控制器还是MVC API? 我读了here,api对SPA有好处.那么,我是否需要为API构建一个不同的项目? Angularjs与MVC的异步通信怎么样? 我没有找
我有一些困惑在 angularjs和MVC5之间传输数据.我正在创建单页面应用程序(SPA).

>使用angularjs的最佳方法是什么?是MVC控制器还是MVC API?
>我读了here,api对SPA有好处.那么,我是否需要为API构建一个不同的项目?
> Angularjs与MVC的异步通信怎么样?

我没有找到正确的工作方向.我熟悉mvc但不熟悉API.所以,请指导我一个正确的方法!!

提前致谢

解决方法

首先,使用当前版本的Visual Studio(2013),“Web表单”项目和“mvc”项目之间没有区别.只有一个Web应用程序项目,在里面你可以放任何你想要的东西.

根据我的经验,一个好的和干净的方法来解决你的问题是创建普通的MVC控制器来呈现包含angularJS应用程序的剃刀视图,并为ajax方法的RESTful接口创建WebAPI控制器.

在angularJS中,您不需要手动执行ajax调用.有一种更方便,更强大的方式:资源.它们也适用于WebAPI设计,因为WebAPI控制器使用单一类型的对象(即客户),并且通过HTTP VERBS允许您执行CRUD.例如:

// assume we have a backend repository that handles the data

public HttpResponseMessage Get()
{
    return this.Request.CreateResponse(HttpStatusCode.OK,this.repository.GetAllCustomers()); 
}

public HttpResponseMessage Post(Customer customer)
{
    var modifiedCustomer = this.repository.Update(customer);
    this.repository.SaveChanges();

    return this.Request.CreateResponse(HttpStatusCode.OK,modifiedCustomer);
}

此方法查询所有可用客户并返回它们.您不在此处定义是返回JSON还是XML:WebAPI框架读取WebAPI请求的HTTP HEADERS并根据客户端的请求序列化数据.对于您可能正在使用的JSON,它通过定义的默认JSON序列化程序进行序列化.您可以覆盖它以更改JSON的创建方式,常见的方法是将JSON.NET与自定义设置一起使用.

AngularJS资源用于映射单个URL并在内部使用所有动词,并向您公开$save,$query,$get等方法,因此它们非常合适.例如:

var customerRes =  $resource('/customers');
var currentCustomers = customerRes.query(function(){ // query is mapped to the GET verb
    currentCustomers[0].email = "foo@baz.bar";
    currentCustomers[0].$save(); // default mapped to the POST verb
});

我建议您查看文档和示例以获取更多详细信息.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读