我正在做一个辅助项目来自学 AngularJS 和 Web API,以及两者如何很好地协同工作。
我有很好的 ASP.NET MVC 知识,但我仍然无法理解 AngularJS 和 Web API 以及这三者如何协同工作。
目前,我有一个带有以下代码的 Web API 控制器:
public class PlanController : ApiController
{
[Route("api/thing")]
public HttpResponseMessage Post(ThingVM model)
{
HttpResponseMessage response;
if (ModelState.IsValid)
{
using (var context = new MyContext())
{
var thing = new Thing();
context.Thing.Add(thing);
context.SaveChanges();
response = Request.CreateResponse(HttpStatusCode.Created);
string uri = Url.Link("GetThingById", new {id = thing.Id});
response.Headers.Location = new Uri(uri);
}
}
else
{
response = Request.CreateResponse(HttpStatusCode.BadRequest);
}
return response;
}
}
在我Create.cshtml
看来,我有ng-app
指令,我创建了一个 JS 控制器并放置了ng-controller
指令放在表单周围,并将其指向 JS 控制器。
但在这里我被困住了。首先,如何将我的ThingVM.cs
ViewModel 绑定到 Angular?我需要JSONResult
在我的 MVC 控制器上返回一个吗?如果是,如何?因为我尝试了以下,但它没有编译。
[HttpGet]
public JsonResult Create()
{
using (var context = new MyContext())
{
var model = new ThingVM();
return Json(model);
}
}
假设我让它工作,我如何将它绑定到 AngularJS,以便它知道我的 ViewModel 结构是什么样的?因为我的ThingVM
有很多复杂程度。
最后,我如何处理表单提交,以便角度指向我的 Web API 控制器的POST
请求。