如何在MVC中实现两个控制器

时间:2013-04-23 05:08:14

标签: c# asp.net-mvc asp.net-mvc-4 model-view-controller

我正在尝试在StudentController中实现ApiController,但问题是我还必须实现BaseController。

当我这样做时,它不起作用

public class StudentController : BaseController, ApiController

我该怎么做?

3 个答案:

答案 0 :(得分:5)

BaseController来自ApiController

public class BaseController: ApiController
{
...

public class StudentController : BaseController
{
...

如果您想在同一个应用程序中使用WebApi和MVC,可能会使用不同的命名空间。

namespace Applicationrootns.Controllers
{
    public class StudentController : Controller
    {
        ....
    }
}

namespace Applicationrootns.Controllers.Api
{
    public class StudentController : ApiController
    {
       ....
    }
}

现在可以访问

applicaitonbase/student/applicaitonbase/api/student

答案 1 :(得分:1)

让你的基础控制器首先从ApiController继承,然后从你的学生控制器继承你的基础控制器。

public class BaseController : ApiController

public class StudentController : BaseController 

答案 2 :(得分:1)

你做不到。 C#中不允许多重继承。其他答案为您提供了可能的解决方法,但您无法从多个基类派生。 C#只允许单个继承链。