MVC控制器之间有什么区别(我可以在一个控制器中注入所有控制器)吗?

时间:2014-04-07 11:10:19

标签: c# asp.net-mvc api controller odata

  

控制器(MVC)与 ApiController BreezeController 以及 IHttpController 之间有什么不同? ODataController


  

为什么MVC中有这么多控制器?哪一个是主控制器?我可以将所有控制器注入一个控制器吗?

4 个答案:

答案 0 :(得分:2)

  • MVC Controller是一个通用控制器("主要"控制器)。

  • API Controller是一个特定于WebApi(" WebServices")项目的MVC控制器。

  • ODataController(这是一个ApiController)为OData控制器定义了一个基类,支持使用OData格式编写和读取数据。

  • IHttpController是一个有助于为自定义 HTTP控制器实现通用功能的界面。

  • 我不知道是否存在" BreezeController"上课,但我认为this article可能会有所帮助。

  • 没有必要注射"一个控制器到另一个。看一下article,它可能会有所帮助。

答案 1 :(得分:1)

Mvc控制器结构:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MvcDemo.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{return View();}

public ActionResult About()
{return View();}
}
}

1.找到适当的操作方法来调用并验证它是否可以被调用。 2.获取要用作操作方法参数的值。 3.处理在执行操作方法期间可能发生的所有错误。

答案 2 :(得分:0)

MVC控制器和API控制器都应该只包含" EndPoints"。 MVC控制器中的端点通常是用于HTML视图的ActionResult类型的方法,用于响应AJAX调用的JsonResult或用于返回状态指示符的简单字符串,而API控制器中的端点可以是通常以JSON格式表示的任何自定义类类型

任何http请求都会触及控制器内的指定端点方法,因此您可以将控制器视为类似于"虚拟目录"一个网站。

所有业务逻辑和数据处理都应在模型和业务逻辑层中实现。端点只是决定将请求定向到哪个进程,并返回Model进程生成的结果。

本文介绍了两者之间差异的更多细节: https://www.linkedin.com/pulse/webapi-vs-mvc-comparing-apples-oranges-yogi-grantz

答案 3 :(得分:0)

MVC Controller是一个通用控制器(“主”控制器)。

API Controller是一个特定于WebApi(“WebServices”)项目的MVC控制器。

ODataController(这是一个ApiController)为OData控制器定义了一个基类,支持使用OData格式编写和读取数据。

IHttpController是一个帮助实现自定义HTTP控制器常用功能的接口。

我不知道是否存在“BreezeController”类,但我认为这篇文章可能有所帮助。

无需将一个控制器“注入”另一个控制器。看看那篇文章,它可能有所帮助。