You can but you should not use JsonResult. Web Api is a genius concept. Web APi has made REST simpler. For every entity you can create new ApiController and manage CRUD operations through it. Here are some points.
You have mentioned that we can't use actions more than Get, Post, Put, Delete which is not true. I have used following actions.
public bool post()
{
return true;
}
[HttpPost]
public bool validate(int id)
{
return input == 0;
}
So in the above code, if you do post operation with /cntrName, post method will be called and if you post /cntrname/validate/4, validate will be called. It means you can use function overloading for mutliple requests.
2.
I use angularJS a lot and Web Api helps tremendously. You have to declare 1 url per Angular controller and every request looks same but makes appropriate calls.
3. It increases reusability.Example
[HttpPost]
public JsonResult post()
{
return Json("output",JsonRequestBehavior.AllowGet);
}
public string post()
{
return "output";
}
Now if you want to use above method in different controller, with MVC you have to do following
(string) post().Data //get returned data from JsonResult and convert to string.
Web Api is just returning string
- Web API is a logical abstract for doing ajax requests. Sure you can use MVC (You can use WebForms also if you want). But web api is better way of writting CRUD-REST applications.