找不到视图“SummaryReport”或其主视图,或者没有视图引擎支持搜索的位置 ASP.NET MVC

The view 'SummaryReport' or its master was not found or no view engine supports the searched locations ASP.NET MVC

提问人:Adam Suchi Hafizullah 提问时间:10/4/2023 最后编辑:marc_sAdam Suchi Hafizullah 更新时间:10/4/2023 访问量:31

问:

我在一个解决方案中有 3 个项目:

  1. 库 -> 控制台应用程序
  2. Project1 -> MVC
  3. 项目 2 -> MVC

Project1并具有类似的视图,我们在文件夹中将其称为 .所以 和 视图的结构是这样的:Project2SummaryReport.cshtmlMonthlyProject1Project2

- Project1/Project2
  \--Views
  \---Monthly
  \----SummaryReport.cshtml

然后我在两个项目中都有控制器名称。Monthly.cs

我计划将控制器移动到库项目,以便可以在 project1 和 project2 之间共享。对于控制器来说,这是成功的。顺便说一句,我通过复制并粘贴为指向 project1 或 project2 的链接来共享它。Monthly.csMonthly.cs

我也想复制 ,;首先,我将该文件放入,然后在为控制器创建时执行相同的操作,将该视图复制并粘贴为链接到project1和project2。SummaryReport.cshtmlLibrary - Views - Monthly - SummaryReport.cshtml

但是我得到一些错误:

[InvalidOperationException:找不到视图“SummaryReport”或其主视图,或者没有视图引擎支持搜索的位置。搜索了以下位置:
~/Views/Monthly/SummaryReport.cshtml ~/Views/Monthly/SummaryReport.vbhtml ~/Views/Shared/SummaryReport.cshtml ~/Views/Shared/SummaryReport.vbhtml


]

System.Web.Mvc.ViewResult.FindView (ControllerContext 上下文) +511 System.Web.Mvc.ViewResultBase.ExecuteResult (ControllerContext 上下文) +143

System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive (IList1 筛选器, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) +795
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList1 筛选器,ActionResult 操作结果)+81 System.Web.Mvc.Async.<>c__DisplayClass21.b__1e (IAsyncResult asyncResult) +188

System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +38 System.Web.Mvc.Controller.b__1d(IAsyncResult asyncResult,ExecuteCoreState innerState) +32 System.Web.Mvc.Async.WrappedAsyncVoid1.CallEndDelegate(IAsyncResult 异步结果) +39 System.Web.Mvc.Controller.EndExecute(IAsyncResult 异步结果)+38 System.Web.Mvc.MvcHandler.b__5 (IAsyncResult asyncResult, ProcessRequestState innerState) +46 System.Web.Mvc.Async.WrappedAsyncVoid'1.CallEndDelegate(IAsyncResult 异步结果) +73 System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult,异步结果)+38 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +426 System.Web.HttpApplication.ExecuteStepImpl (IExecutionStep 步骤) +172 System.Web.HttpApplication.ExecuteStep(IExecutionStep 步骤,布尔值&完成同步) +158
1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) +91 System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) +795 System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList1.CallEndDelegate(IAsyncResult asyncResult) +73 System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +52 System.Web.Mvc.Async.WrappedAsyncVoid

这是怎么回事?如何解决这个问题?我也已经将引用 project1 添加到我的 Library 项目中,并设置了类似的依赖项。可重用视图的最佳方式是什么?

提前致谢。

我期望共享视图成功

更新我的函数:SummaryReportMonthlyController

public ActionResult SummaryReport()
{
    var model = db.Database.SqlQuery<MontlhySummary>("SELECT * FROM monthlySummary").ToList();

    ViewBag.Title = "Monthly Report";

    return View(model);
}
C# asp.net ASP.NET-MVC Razor

评论

0赞 T3.0 10/5/2023
你使用的是 Visual Studio 吗?还是 VSCode?这是在调试时在本地发生还是仅在生产环境中发生?不要复制和粘贴视图,而是尝试创建一个新文件并将内容粘贴到新文件中。
0赞 Adam Suchi Hafizullah 10/5/2023
我使用的是 Visual Studio。当我调试时会发生这种情况。目前的解决方案是我只能在 Windows for Views 中使用 mklink

答: 暂无答案