Asp.net mvc 3 在我的asp.net MVC中使用asp.net Icontroller与使用asp.net ApiController的CRUD操作

Asp.net mvc 3 在我的asp.net MVC中使用asp.net Icontroller与使用asp.net ApiController的CRUD操作,asp.net-mvc-3,asp.net-web-api,Asp.net Mvc 3,Asp.net Web Api,如果我需要构建一个web应用程序来实现与管理医疗医院机构相关的功能。该应用程序包括添加、更新、删除、搜索和检索患者、就诊等功能 所以我不知道在我的ASP.NET MVC web应用程序中应该采用哪种方法,或者在ASP.NET MVC中使用我的控制器类 从IController派生以执行CRUD操作 或 从ApiController派生来执行CRUD操作 第二个问题是否有一种方法正在取代另一种方法,以及每种方法相对于另一种方法的优缺点是什么?如果要从控制器生成经典HTML页面,请使用MVC方法。如

如果我需要构建一个web应用程序来实现与管理医疗医院机构相关的功能。该应用程序包括添加、更新、删除、搜索和检索患者、就诊等功能

所以我不知道在我的ASP.NET MVC web应用程序中应该采用哪种方法,或者在ASP.NET MVC中使用我的控制器类

  • 从IController派生以执行CRUD操作
  • 从ApiController派生来执行CRUD操作

  • 第二个问题是否有一种方法正在取代另一种方法,以及每种方法相对于另一种方法的优缺点是什么?

    如果要从控制器生成经典HTML页面,请使用MVC方法。如果您希望返回给客户机的是某种序列化数据(XML、JSON等),请使用Web API控制器,因为这些控制器可以简化,例如内容协商


    另请参见

    您完全可以同时使用这两种方法。没有什么能阻止您使用好的旧控制器在JSON中执行CRUD,MVC能够做到这一点。但是,您并没有获得WebAPI的所有优秀功能,例如内容协商、消息处理程序、媒体类型格式化程序等


    如果您不需要任何特定于Web API的特性,那么使用MVC。但是从长远来看,Web API将是一项更好的投资,因为我相信很快就会被采用。

    感谢您的回复,但是在Microsoft网站上有一些例子,它们使用从ApiController派生的控制器来返回razor视图,而不是JSON。这是绝对可能的。但是,我发现从MVC控制器生成HTML更容易。顺便说一句,您当然可以在单个项目中组合这两种类型的控制器,例如,使用MVC控制器进行HTML报告,使用Web API进行API端点返回XML或JSON到通用客户端。那么这是否意味着Web API正在接管MVC,,或者他们将来会一起工作???使用Web API公开服务,使用MVC返回渲染视图。