Форум

API Controllers MVC

Цитировать

Использование api контроллера облегчило задачу работы с REST Requests . В статье вспомним старый способ и узнаем новый.

Цитировать

Старый способ я использовал довольно часто. Создадим новый контроллер

NewController : Controller

И передадим наследство от родителя затем пишем обычный метод  с представлением Index

public ActionResult Index()

        {
            return View();
        }

Ну и что же делать дальше как обратится к методу запросом GET или POST ?

 

Цитировать

Очень просто необходимо использовать атрибут , именно в самом контроллере. А вместо типа данных ActionResult  использовать JsonResult

[HttpPost]
public JsonResult Index() 
        {
            return View();
        }

 

 

Цитировать

Ну вот теперь можно оAбратится к этому методу напрямую не передавая в представление переменную. А используя AJAX метод запроса :

 $.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",

Ну и передать например заголовки . И как же теперь получить данные от контроллера в формате JSON  обратно? А вот как

В контроллере  возвращаем

return Json(data, JsonRequestBehavior.AllowGet); 

 

Цитировать

Таким образом можно обращаться к контроллеру , передавать и получать данные. Но сегодня уже во всю существует немного другой способ. Существует класс родитель apiController и возможность создания пустово шаблона api Controller

public class ValuesController : ApiController
{
    // GET api/values
    public IEnumerable<string> Get()
    {
        return new string[] { "value1", "value2" };
    }
    // GET api/values/5
    public string Get(int id)
    {
        return "value";
    }
    // POST api/values
    public void Post([FromBody]string value)
    {
    }

не нужно мучится  с маршрутами  а можно напрямую использовать Full REST  без всяких проблем.