用于获取View类的命名空间是什么?

时间:2018-12-11 22:45:03

标签: razor asp.net-core view

我最初是在项目中使用严格的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一样进行操作。我误会了吗?

1 个答案:

答案 0 :(得分:2)

  

但是看起来就像回到旧内核时代,然后像在旧版MVC中那样做

我不明白您想说什么。 ASP.NET Core的设计在使用上与经典的ASP.NET MVC紧密匹配,因此您在迁移时无需更改所有内容。而且还因为以前的用法不是。因此,仅因为您所做的事情已经做完了,并不意味着这是不好的事情。您仍在运行一个完全不同的框架。

话虽如此,如果您想使用MVC视图,则您的控制器应继承自Controller而不是ControllerBase。您也可以直接返回一个ViewResult,但是从Controller继承通常更易于使用。请注意,这样做通常不会带来不利影响。

如果您担心要向API控制器中添加MVC视图功能,则可以为此使用单独的控制器。