Я работаю над побочным проектом, чтобы научить себя AngularJS и веб-API и то, как они могут работать вместе.MVC5.1 с Web API 2 и AngularJS
У меня есть хорошие знания ASP.NET MVC, но я до сих пор не могу разобраться с AngularJS и веб-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 к угловому? Должен ли я вернуть JSONResult
на мой контроллер MVC? Если да, как? Потому что я попробовал, следующее, и он не компилируется.
[HttpGet]
public JsonResult Create()
{
using (var context = new MyContext())
{
var model = new ThingVM();
return Json(model);
}
}
Предполагая, что я понимаю, что работать, как я привязать его к AngularJS, так что он знает, что моя структура ViewModel это как? Потому что мой ThingVM
имеет много уровней сложности.
Наконец, как мне обрабатывать отправку формы, так что угловые точки моего контроллера веб-API для запроса POST
.
Любая помощь была бы принята с благодарностью.
Thank you.
Ничего себе, это здорово, но у меня есть вопрос относительно вышеуказанного. Где находятся помощники ASP.NET MVC Html? Они больше не нужны? Должен ли я вручную вводить элементы ввода HTML для формы? – Ciwan
@Ciwan: использование Html-помощников не является обязательным. Пока рендеринг HTML имеет необходимые свойства, такие как 'ng-model',' ng-controller'. –