私はサイド プロジェクトに取り組んでおり、AngularJS と Web API を独学し、この 2 つがうまく連携する方法を学んでいます。
私は ASP.NET MVC について十分な知識を持っていますが、AngularJS と Web API、および 3 つがどのように連携するかについてはまだ理解できていません。
現時点では、次のコードを含む 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 コントローラーでa を返す必要がありますか? はいの場合、どのように?以下を試しましたが、コンパイルされていません。
[HttpGet]
public JsonResult Create()
{
using (var context = new MyContext())
{
var model = new ThingVM();
return Json(model);
}
}
それが機能すると仮定すると、それを AngularJS にバインドして、ViewModel 構造がどのようなものかを知るにはどうすればよいでしょうか? 私のにThingVM
は多くのレベルの複雑さがあるからです。
最後に、フォームの送信をどのように処理すれば、Angular がPOST
リクエストの Web API コントローラーを指すようになりますか。