C# 错误:找不到视图或其主视图。搜查了下列地点

C# 错误:找不到视图或其主视图。搜查了下列地点,c#,html,asp.net-mvc,C#,Html,Asp.net Mvc,我有一个特定控制器操作不显示视图的问题 以下是控制器操作: public ActionResult DisplayStudents(string id) { var name = (from p in data.StudentTable.Where(a => a.ClassNumberID == id) group n by n.StudentName into g

我有一个特定控制器操作不显示视图的问题

以下是控制器操作:

public ActionResult DisplayStudents(string id)
        {
            var name = (from p in data.StudentTable.Where(a => a.ClassNumberID == id)
                                  group n by n.StudentName into g
                                  select g.Key).First();

            return View(name);
        }
控制器名称为“Student”,视图显示在“Views/Student/displaystusts.aspx”中

为什么我仍然会出现此错误:

Server Error in '/' Application.
--------------------------------------------------------------------------------

The view 'Thomas Guenn' or its master was not found. The following locations were searched:
~/Views/Student/Thomas Guenn.aspx
~/Views/Student/Thomas Guenn.ascx
~/Views/Shared/Thomas Guenn.aspx
~/Views/Shared/Thomas Guenn.ascx 
还有,为什么它要找“Thomas Guenn.aspx”而不是“DisplayStudents.aspx”

这是我的查看页面:

>" %> 展示学生 学生名单如下:


因为您的
视图(名称);
调用正在调用重载
视图(字符串视图名称)
。如果要将字符串作为模型传递,请尝试使用

return View((object)name);
相反

如果这不起作用,请尝试使用重载
View(字符串viewName,对象模型)
明确指定viewName,如下所示:

return View("DisplayStudents", name);

UPD:查看您的视图代码,我可以说它也不会返回预期的页面:您将从控制器返回单个字符串项作为模型,但您的
DisplayStudents.aspx
需要一个集合。您还应该更正您的视图(因此它将接受单个字符串作为模型)或者从控制器返回一个
IEnumerable
,方法是从
name

的LINQ表达式中删除
.First()
,因为重载需要一个对象(如果它是数据)和一个字符串(如果在中传递视图的名称)

改用这个:

返回视图((对象)名称);

如果在控制器中设置断点,是否达到了预期的操作?能否显示路由和请求的url?这看起来像是路由问题。
return View("DisplayStudents", name);