2

在阅读了关于这个主题的几篇文章后,我还没有找到我的问题的答案。我有一个 MVC 3 应用程序并添加了一个区域。一切正常,直到我尝试从区域内的控制器返回视图。

我可以成功发布到控制器保存方法,但只需返回视图(返回 View()),我得到以下信息:

未找到“保存”视图或其主视图,或者没有视图引擎支持搜索的位置。搜索了以下位置:

~/Areas/Test/Views/Default1/Save.aspx
~/Areas/Test/Views/Default1/Save.ascx
~/Areas/Test/Views/Shared/Save.aspx
~/Areas/Test/Views/Shared/Save.ascx
...

这似乎很基本,不知道为什么我会遇到这么多麻烦。

我使用了 Phil Haack 的 RouteDebugger (http://nuget.org/packages/routedebugger) 并且所有路由都作为设置工作......

4

1 回答 1

2

MVC 期望(按照惯例)一个视图(与您在任何一个文件夹中的操作名称同名(默认情况下,但您可以覆盖它)。您应该在任何文件夹中都有该视图。那是MVC 约定。所以将您的视图添加到该文件夹​​。您可以通过右键单击Return View()操作方法中的 statmenet 并选择Add View选项来添加它。它将自动添加一个视图。

在此处输入图像描述

或者您可以右键单击该Areas/Test/Views/Default1文件夹并选择添加视图并将其保存为与您的操作方法相同的名称。如果您想使用与操作名称不同的名称保存它,可以使用 View 方法,如下所示

return View("MyOtherViewName");

假设您在文件夹中添加了 aMyOtherViewName.cshtml作为您的视图Areas/Test/Views/Default1

于 2012-04-06T17:32:34.453 回答