【问题标题】:Controller cannot find view控制器找不到视图
【发布时间】:2023-03-27 19:25:01
【问题描述】:

我做了一个项目,我有一个基本的DemoController

<Export(GetType(IController))> _
<ExportMetadata("controllerName", "Demo")> _
<PartCreationPolicy(CreationPolicy.NonShared)> _
Public Class DemoController Inherits Controller

    Public Function Index() As ActionResult
        Return View("~/Views/Demo/Index.aspx")
    End Function

End Class

在我的具有此控制器的“插件”项目中,它的路径为/View/Demo/Index.aspx。当我运行我的主网络应用程序时,我可以到达 return View 行,但它却说找不到该文件。

为什么会这样?

我希望这一切都有意义,并对糟糕的格式表示抱歉。

我应该提一下,我的 .aspx 文件位于 Web 应用程序之外的另一个项目中。我将所有内容构建到一个 dll 中,然后将其放入我的 Web 应用程序项目中的一个文件夹中。我得到的错误是“未找到视图'~/Views/Demo/Index.aspx'或其主视图或没有视图引擎支持搜索的位置。搜索了以下位置:~/Views/Demo/Index.aspx "

【问题讨论】:

    标签: asp.net-mvc vb.net mef


    【解决方案1】:

    您说您将所有视图嵌入到一个单独的项目中。使用内置视图引擎将不起作用。您必须在此thread 中指定内置视图引擎中的视图位置,或者创建custom view engine

    【讨论】:

      【解决方案2】:

      您必须为您的插件注册视图

      asp.net mvc 的流程

      因此,如果您使用 DI 开发插件,您必须牢记以下几点 -自定义视图引擎 -自定义控制器工厂

      默认的ControllerFactory不能解析你插件的控制器,viewEngine也是一样,你必须告诉viewEngine那个view在哪里

      这是一个例子http://blog.maartenballiauw.be/post/2008/05/20/Creating-a-custom-ViewEngine-for-the-ASPNET-MVC-framework.aspx

      【讨论】:

        【解决方案3】:
        ~/Demo/Index
        

        应该是正确的路线

        另外,请像这样修复退货

        Return View()
        

        Return View("Index")
        

        【讨论】:

        • 还是不行。这是我得到的错误:未找到视图“~/Demo/Index.aspx”或其主视图,或者没有视图引擎支持搜索的位置。搜索了以下位置:~/Demo/Index.aspx
        • 您必须拥有解决方案的默认结构。示例:您需要文件夹“Views”,在该文件夹下应该有每个控制器的文件夹,该文件夹应包含根据操作的页面,索引操作应具有 Index.aspx 页面。此外,请确保您将其正确部署为 mvc 应用程序。
        • 还是不行。它正在我的 Web 应用程序项目中寻找视图,并且该视图在我的插件项目中。他们都在同一个解决方案中。插件解决方案的路径为 ~/Views/Demo/Index.aspx,控制器称为 DemoController。我正在查看的网站是这个,除了我是在 VB 中做的,我必须更改 MefControllerFactory 方法中的 CreateController 方法。 blog.maartenballiauw.be/post/2009/04/21/…
        • 我的一个项目是一个类库,另一个是一个 MVC 3 应用程序,如果这有所作为的话。
        • 必须在ViewEngine上注册视图,插件的视图你注册了吗?
        猜你喜欢
        • 1970-01-01
        • 2021-01-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多