当前上下文中不存在名称为“View”的内容。

62

编译时,我遇到了这个错误:The name 'View' does not exist in the current context,这是关于我的代码 return View(); 的引用。

完整的示例代码:

namespace Controllers
{
public class FilePageController
{
    //
    // GET: /FilePage/
    public ActionResult Index()
    {
        return View();
    }
}
}

我做过几次这样的事情,在SO上找不到答案,所以我想发帖并附上答案,以防其他像我一样在学习MVC时也遇到同样的问题。


7
我需要解释一下为什么其他人会对这个问题进行评分降低…… - levininja
2
你恰好在同一时间发布了问题和答案。 22:18:01Z 稍微超时了一点,但你还是得到了它。这给我的印象是你已经知道了答案。 - Satpal
4
我已经知道答案了。在SO上,推广发布你已经知道答案的信息;请参见这里,并且请按照SO的指南撤销您的反对投票。 - levininja
3
好问题,这解决了我遇到的问题。很抱歉其他人给你点了踩 :-( - Lee Englestone
4
我想衷心感谢您提供这个答案。您刚刚为我节省了可能要花费数小时的时间来解决这个问题的烦恼。无视那些不理解“Stack Overflow”礼仪的人,让我们一起点赞吧! - Dave
2个回答

116

控制器没有继承controller类。MVC有许多约定,但仅在类名末尾使用"Controller"命名不足以满足要求。

将其更改为public class FilePageController : Controller

顺便说一下,Controller类从ControllerBase类继承。因此,从Controller类继承的类可以访问ControllerBase类的成员。


2
  1. Web Api不包含View,所以当您在action方法中创建新类并返回View()时,请使用继承自Controller的控制器而不是ControllerBase。

Microsoft.AspNetCore.Mvc.Controller* - Ivan Silkin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接