Прежде всего, с текущей версией Visual Studio (2013) нет никакого различия между проектом «веб-формы» и проектом «mvc». Есть только проект веб-приложений, и внутри вы можете поместить все, что захотите.
Теперь, исходя из моего опыта, хороший и чистый способ приблизиться к вашей проблеме - создать нормальные MVC-контроллеры для визуализации представлений бритвы, содержащих приложения angularJS, и создать контроллеры WebAPI для интерфейса RESTful для методов ajax ,
В угловом JS вам действительно не нужно вручную выполнять ваши вызовы 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 считывает HTTP-HEADERS запроса WebAPI и сериализует данные по запросу клиента. Для 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 = "[email protected]";
currentCustomers[0].$save(); // default mapped to the POST verb
});
Предлагаю вам ознакомиться с документацией и образцами для более подробной информации.
@AntP спасибо за предложение Google, но мой вопрос о путаницах. Поскольку я уже создал модели и классы в mvc. Я хочу понять идеальный сценарий общения. – Sarbanjeet
Это очень широкий вопрос, ответ на который будет в значительной степени зависеть от контекста и будет в значительной степени субъективным. Лучше всего узнать об обеих технологиях, прочитать некоторые сообщения в блогах, сравнивая их и сделать свой собственный образ таким образом. –
Хорошо, если у вас есть информация о правильном направлении, пожалуйста, дайте мне знать. Спасибо – Sarbanjeet