如何使用 ASP.NET Core API 控制器返回视图

Gol*_*avo 2 model-view-controller view asp.net-core

我正在使用 ASP.NET core,我读过它已将控制器和 API 合并为一。我已成功地使 JSON 数据正常工作,但是视图无法正常工作。它只是说找不到该页面。我可以查看主页,但是,这是作为 MVC 控制器而不是 API 控制器创建的。

namespace ScheduleWebApp.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class StaffHoursWorkedController : Controller
    {
        public IActionResult Index()
        {
            return View();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Tao*_*hou 7

对于 MVC 控制器,其基类是Controller具有视图支持的 MVC 控制器的基类。

对于API控制器,它的基类是ControllerBase没有视图支持的MVC控制器的基类。

请按照以下步骤操作:

  1. 控制器
[Route("api/[controller]/[action]")]
[ApiController]
public class ValuesController : Controller //ControllerBase
{
    private readonly ILogger<ValuesController> _logger;
    public ValuesController(ILogger<ValuesController> logger)
    {
        _logger = logger;
    }
    
    [HttpGet]
    public IActionResult Index()
    {
        return View();
    }        
}
Run Code Online (Sandbox Code Playgroud)
  1. 右键单击View()->添加视图

  2. 访问Index页面https://localhost:5001/api/values/index