我最初是在项目中使用严格的API,但现在我想呈现视图,因此添加了以下操作。
[HttpGet("login")]
public IActionResult LogIn([FromQuery] string returnUrl)
{
HttpClient client = new HttpClient();
...
return View("Login");
}
我还在目录 Views / Account 中添加了一个名为 Login.cshtml 的文件(而上面的控制器位于 Controllers 目录中。
问题在于计算机无法解析该符号。我知道语法是正确的(如here所示),所以我假设它是要添加的 using Xxx 。有趣的是,我还没有找到相关的文档,我也不知道如何将其提供给我的项目。
我该如何解决视图无法识别的问题?
我注意到,将继承从ControllerBase(在没有视图支持的情况下称为 更改为 Controller )可以消除该错误,但是好像回到了核心时间并像以前的MVC一样进行操作。我误会了吗?
答案 0 :(得分:2)
但是看起来就像回到旧内核时代,然后像在旧版MVC中那样做
我不明白您想说什么。 ASP.NET Core的设计在使用上与经典的ASP.NET MVC紧密匹配,因此您在迁移时无需更改所有内容。而且还因为以前的用法不是坏。因此,仅因为您所做的事情已经做完了,并不意味着这是不好的事情。您仍在运行一个完全不同的框架。
话虽如此,如果您想使用MVC视图,则您的控制器应继承自Controller
而不是ControllerBase
。您也可以直接返回一个ViewResult
,但是从Controller
继承通常更易于使用。请注意,这样做通常不会带来不利影响。
如果您担心要向API控制器中添加MVC视图功能,则可以为此使用单独的控制器。