Asp.net web api asp.net 5 MVC 6中的MVC和WebApi是否可以使用相同的控制器?

Asp.net web api asp.net 5 MVC 6中的MVC和WebApi是否可以使用相同的控制器?,asp.net-web-api,asp.net-core,asp.net-core-mvc,Asp.net Web Api,Asp.net Core,Asp.net Core Mvc,在MVC6中,MVC和WebApi控制器似乎是相同的。 我有以下代码 [Route("api/[controller]")] public class TeamController : Controller { public IActionResult Index() { return View(); } static readonly List<Team> _items = new List<Team>() {

在MVC6中,MVC和WebApi控制器似乎是相同的。 我有以下代码

[Route("api/[controller]")]
public class TeamController : Controller
{

    public IActionResult Index()
    {
        return View();
    }

    static readonly List<Team> _items = new List<Team>()
    {
        new Team { Id = 1, Name = "First Team" }
    };

    // GET: api/values
    [HttpGet]
    public IEnumerable<Team> Get()
    {
        return _items;
    }
}
[路由(“api/[控制器]”)]
公共类TeamController:Controller
{
公共IActionResult索引()
{
返回视图();
}
静态只读列表_items=新列表()
{
新团队{Id=1,Name=“First Team”}
};
//获取:api/值
[HttpGet]
公共IEnumerable Get()
{
退货(物品);;
}
}
我在Views/Team文件夹下有Index.cshtml。 我能够在localhost:port/api/team中获得结果,但是localhost:port/team/Index返回404错误


那么,如何对MVC和WebApi使用相同的控制器呢?

您已经将route属性应用于该类

    [Route("api/[controller]")]
    public class TeamController : Controller
因此,它将把路由部分应用于控制器中的所有内容。您最好在应用程序启动时定义自定义路由

这是一篇介绍路由的优秀文章,包括一个混合MVC/API控制器:

您已将route属性应用于类

    [Route("api/[controller]")]
    public class TeamController : Controller
因此,它将把路由部分应用于控制器中的所有内容。您最好在应用程序启动时定义自定义路由

这是一篇介绍路由的优秀文章,包括一个混合MVC/API控制器:

我更改了如下代码()

[路由(“[控制器]”)]
公共类TeamController:Controller
{
[HttpGet(“索引”)]
公共IActionResult索引()
{
返回视图();
}
静态只读列表_items=新列表()
{
新团队{Id=1,Name=“First Team”}
};
//获取:api/值
[HttpGet]
公共IEnumerable Get()
{
退货(物品);;
}
将类的“Route”属性更改为[controller],然后将HttpGet添加到返回视图的Index()方法中


现在返回视图并返回JSON响应。

我更改了如下代码()

[路由(“[控制器]”)]
公共类TeamController:Controller
{
[HttpGet(“索引”)]
公共IActionResult索引()
{
返回视图();
}
静态只读列表_items=新列表()
{
新团队{Id=1,Name=“First Team”}
};
//获取:api/值
[HttpGet]
公共IEnumerable Get()
{
退货(物品);;
}
将类的“Route”属性更改为[controller],然后将HttpGet添加到返回视图的Index()方法中


现在返回视图并返回JSON响应。

谢谢。这篇文章非常有用,现在可以正常工作了。谢谢。这篇文章非常有用,现在可以正常工作了。