Asp.net mvc 在MVC5应用程序中使用API控制器有什么好处?
ASP.NET Web API为客户端调用服务器端API提供了一种RESTful方式。因此,使用Web API开发的客户端(例如,Angular或纯HTML&jQuery)是有意义的。Asp.net mvc 在MVC5应用程序中使用API控制器有什么好处?,asp.net-mvc,asp.net-web-api,asp.net-web-api2,Asp.net Mvc,Asp.net Web Api,Asp.net Web Api2,ASP.NET Web API为客户端调用服务器端API提供了一种RESTful方式。因此,使用Web API开发的客户端(例如,Angular或纯HTML&jQuery)是有意义的。 我有一个使用ASP.NET MVC5开发的应用程序。在MVC5中,我们有MVC控制器,主要用于返回视图。但是,您也可以从MVC控制器返回JSON 在我的应用程序中,视图非常复杂,所以我不会在第一次加载视图时构建整个模型。相反,我使用jQuery进行ajax调用,并根据需要获取JSON数据。(注意,im使用tele
我有一个使用ASP.NET MVC5开发的应用程序。在MVC5中,我们有MVC控制器,主要用于返回视图。但是,您也可以从MVC控制器返回JSON 在我的应用程序中,视图非常复杂,所以我不会在第一次加载视图时构建整个模型。相反,我使用jQuery进行ajax调用,并根据需要获取JSON数据。(注意,im使用telerik控件,该控件进行ajax调用以获取JSON数据)。无论是谁进行ajax调用,在整个应用程序中,我都有几个对服务器的ajax调用。对于所有这些ajax调用,我没有使用System.Web.Http.ApiController创建单独的API控制器。相反,我使用的是MVC控制器类。因此,我的典型控制器类如下所示:
public class HelloWorldController : Controller
{
public ActionResult Index()
{
var model = new MyModel();
model.populateModelWithSomeBasicData();
return View(model);
}
[HttpGet]
public ActionResult GetStates()
{
var result = DomainService.GetStatesFromDB();
var model = ConvertToModel(result);
return Json(model);
}
[HttpGet]
public ActionResult GetUsers(string stateCode)
{
var result = DomainService.GetUsersFromDB(stateCode);
var model = ConvertToModel(result);
return Json(model);
}
[HttpPost]
public ActionResult ActivateUser(int userID)
{
var result = DomainService.ActivateUser(userID);
var model = ConvertToModel(result);
return Json(model);
}
[HttpPost]
public ActionResult DeActivateUser(int userID)
{
var result = DomainService.DeActivateUser(userID);
var model = ConvertToModel(result);
return Json(model);
}
[HttpPost]
public ActionResult Save(MyModel model)
{
var entity = ConvertToDomainEntity(model)
DomainService.Save(entity);
return View('MyView',model);
}
}
问题1> 将返回视图和JSON数据的操作方法合并到一个System.Web.Mvc.Controller中可以吗?我不认为使用单独的API控制器来返回JSON有什么好处?事实上,在MVC6中,微软去掉了api控制器,而在MVC6中,一个控制器可以实现这两个目的 2> 我在页面上有一些按钮,如激活用户,停用用户,我不必发送整个模型到服务器。动作方法以ID为参数。(在本例中,我使用jquery生成HTTPPOST)在Mvc控制器中使用这样的方法可以吗
从技术上讲,我的控制器是如何工作的,我的问题与推荐的设计实践有关MVC并没有真正设计出REST-ful语义。WebAPI是。如果你需要一个服务层,你应该使用WebAPI。。。对于渲染视图,应使用MVC。webAPI中有很多特性,可以让使用任何类型的restful API层变得更好。最终决定权归你,但我不会把这两个问题混为一谈。我个人的看法course@Josh谢谢APIcontroller中有哪些更好的特性是MVC控制器中没有的?我只需要获取数据并将其发布到服务器。MVC并没有真正设计成REST-ful语义。WebAPI是。如果你需要一个服务层,你应该使用WebAPI。。。对于渲染视图,应使用MVC。webAPI中有很多特性,可以让使用任何类型的restful API层变得更好。最终决定权归你,但我不会把这两个问题混为一谈。我个人的看法course@Josh谢谢APIcontroller中有哪些更好的特性是MVC控制器中没有的?我只需要获取数据并将其发布到服务器。