未找到视图“名称”或其母版,或者没有视图引擎支持搜索到的位置

问题描述 投票:0回答:2

我收到此错误消息,我看到的任何建议似乎都不适用;即所有视图、控制器和模型都在正确的文件夹中。

更多详情: 我有一个主视图,它显示了一个类似于图形流程图的界面,用于与应用程序进行交互。用户选择“打开研究”符号,然后我重定向到另一个视图,允许用户选择要使用的研究。

OpenStudyController 代码检索选定的研究,然后重定向回主视图:

public ActionResult SelectStudy( Guid? id )
{
    // code elided for clarity

    return RedirectToAction( "ActivateStudy", "Home" );
}

HomeController 有一个名为 ActivateStudy(...) 的方法,它会在适当的环境下被调用:

public ActionResult ActivateStudy()
{
    // code elided for clarity

    return View();
}

正如我所说,所有视图、控制器和模型都在正确的文件夹中。

执行ActivateStudy()中的“return View()”代码时,出现错误信息:

“/”应用程序中的服务器错误。

未找到视图“ActivateStudy”或其母版,或者没有视图引擎支持搜索的位置。搜索了以下位置: ~/Views/Home/ActivateStudy.aspx ~/Views/Home/ActivateStudy.ascx ~/Views/Shared/ActivateStudy.aspx ~/Views/Shared/ActivateStudy.ascx ~/Views/Home/ActivateStudy.cshtml ~/Views/Home/ActivateStudy.vbhtml ~/Views/Shared/ActivateStudy.cshtml ~/Views/Shared/ActivateStudy.vbhtml

我错过了什么? RedirectToAction(...) 中的一些附加参数? RouteConfig 中的一些新条目?

asp.net-mvc-5
2个回答
0
投票

如果你有一个

_ViewStart.cshtml
并且它包含如下内容,则不需要在每个视图中指定相同的布局。

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

我相信您的问题可能与缺少斜杠有关。在您的评论中,您说您的观点包含以下行:

Layout = "~Views/Shared/_Layout.cshtml"

我认为波浪号后需要有一个斜杠。

Layout = "~/Views/Shared/_Layout.cshtml"

但是,正如我所说,您应该能够完全删除该行。


0
投票

好吧,我不知道这是否是“正确”的方法,但是,在我的 HomeController.ActivateStudy() 方法中,我返回主页“索引”视图:

public ActionResult ActivateStudy()
{
    // code elided for clarity

    return View( "Index" );
}

这行得通。

正是在这些时候,您才意识到自己真的不知道很多。回到书籍和代码编辑器。边做边学。

© www.soinside.com 2019 - 2024. All rights reserved.