MVC3/Razor错误:找不到视图或其主视图,或者没有视图引擎支持搜索的位置
本文关键字:视图 或者 引擎 支持 位置 搜索 主视图 错误 Razor 找不到 MVC3 | 更新日期: 2023-09-27 18:20:41
我有一个名为Admin的区域。Visual Studio中的文件夹结构如下:
Areas
Admin
Controllers
Views
我有一个名为AccountController的控制器,其中有一个称为Verify的操作。我在这个动作中有这样一行代码:
return View("EmailVerificationComplete");
但是,我得到了这个错误:
未找到视图"EmailVerificationComplete"或其主视图,或者没有视图引擎支持搜索的位置。搜索了以下位置:~/Views/Account/EmailVerificationComplete.aspx~/Views/Account/EmailVerificationComplete.ascx~/Views/Shared/EmailVerificationComplete.aspx~/Views/Shared/EmailVerificationComplete.ascx~/Views/Account/EmailVerificationComplete.cshtml~/Views/Account/EmailVerificationComplete.vbhtml~/Views/Shared/EmailVerificationComplete.cshtml~/Views/Shared/EmailVerificationComplete.vbhtml
为什么会这样?为什么MVC不知道查看相对于Admin区域的Views文件夹?
我该如何解决此问题?
谢谢,
Sachin
为什么MVC不知道查看相对于Admin区域的Views文件夹?
因为您的AccountController
不在Admin
区域内。它可能在~/Controllers/AdminController.cs
中,因此按照惯例,ASP.NET MVC将在~/Views/Shared
或~/Views/Account
中查找相应的视图。
我也遇到了同样的问题。我发现,当你发送某个操作的请求时,即使url无效,mvc也会根据传入的url为你匹配该操作。如果找到匹配项(在我的情况下,它指向正确的控制器操作方法),就会执行,但由于你传入的路径错误,它无法找到关联的视图。
对我来说,我试图向视图传递一个简单的字符串。这导致View()渲染了错误的重载View(字符串viewName),但我真正想要的是View(对象模型)。因此,解决方案只是将字符串强制转换为一个对象。或者我可以使用ViewBag而不向View()传递任何信息。
我以前遇到过这个错误。。。在我的案例中,.csproj文件被意外地排除在RELEASE分支的合并之外,因此没有将丢失的文件编入项目索引。一旦.csproj被合并、重建和部署,就可以找到该文件。
使用return View(型号:"EmailVerificationComplete");