【发布时间】:2020-01-13 17:10:05
【问题描述】:
我正在使用 ASP.NET 核心,我读过它已将控制器和 API 合并为一个。我已经成功地让 JSON 数据工作,但是,视图不起作用。它只是说找不到该页面。我可以查看主页,但是,这是作为 MVC 控制器而不是作为 API 控制器创建的。
namespace ScheduleWebApp.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class StaffHoursWorkedController : Controller
{
public IActionResult Index()
{
return View();
}
}
}
【问题讨论】:
-
你为什么要这样做? API 控制器并不意味着返回视图。如果要返回视图,请使用常规控制器
-
我认为 MVC 控制器和 Web API 已在 .netcore 中合并在一起。我假设您现在可以从同一个控制器获取视图和数据,而不是像在 .net 框架中那样拥有单独的控制器和单独的 Web API。
-
是的,它们现在都继承自同一个 ControllerBase 类,但是控制器类的行为会根据
[ApiController]属性的存在而有所不同。这意味着您不必在项目中导入和配置两个单独的控制器类型。如果你想混合控制器动作类型,你需要删除[ApiController]属性,但是你会失去一些额外的api功能,比如自动内容协商。最好不要将两者混合在同一个控制器中,因为这往往会违反关注点分离。 -
找不到页面是什么意思?与我们分享您的请求和结果的屏幕截图。
标签: asp.net-core model-view-controller view