在阅读了关于这个主题的几篇文章后,我还没有找到问题的答案。我有一个MVC 3应用程序,并添加了一个区域。一切都很好,直到我尝试从区域内的控制器返回一个视图。
我可以成功发布到控制器Save Method但只需返回视图(返回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),所有路线都在设置......
答案 0 :(得分:1)
MVC期望(按惯例)一个视图(与任何一个文件夹中的动作名称同名(默认情况下,但你可以覆盖它)。你应该在任何文件夹中都有视图。这就是MVC约定。所以将视图添加到该文件夹。您可以通过右键单击操作方法中的Return View()
statmenet并选择Add View
选项来添加它。它将自动添加一个视图。
或者您可以右键单击Areas/Test/Views/Default1
文件夹并选择添加视图,并使用与Action方法相同的名称进行保存。如果要使用与操作名称不同的名称保存它,可以像这样使用View方法
return View("MyOtherViewName");
假设您在MyOtherViewName.cshtml
文件夹
Areas/Test/Views/Default1
作为您的视图