Asp.net mvc 控制器找不到视图

Asp.net mvc 控制器找不到视图,asp.net-mvc,vb.net,mef,Asp.net Mvc,Vb.net,Mef,我做了一个项目,我有一个基本的DemoController: <Export(GetType(IController))> _ <ExportMetadata("controllerName", "Demo")> _ <PartCreationPolicy(CreationPolicy.NonShared)> _ Public Class DemoController Inherits Controller Public Function Index

我做了一个项目,我有一个基本的
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
_
_
_
公共类DemoController继承控制器
作为ActionResult的公共函数索引()
返回视图(“~/Views/Demo/Index.aspx”)
端函数
末级
在我有这个控制器的“插件”项目中,它有路径
/View/Demo/Index.aspx
。当我运行我的主web应用程序时,我可以进入
返回视图
行,但它说找不到文件

为什么会这样

我希望这一切都有意义,并为糟糕的格式感到抱歉

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

应该是正确的路线

另外,请像这样修改报税表

Return View()


您必须注册插件的视图

用asp.netmvc实现的流程

所以,如果你正在用DI开发插件,你必须记住几件事 -自定义视图引擎 -自定义控制器工厂

默认的ControllerFactory无法解析插件的控制器,这与viewEngine相同,您必须告诉viewEngine该视图在哪里


下面是一个示例

您说过您将所有视图嵌入到一个单独的项目中。使用内置视图引擎将无法工作。您必须在内置视图引擎中指定此中指定的视图位置,或者创建一个。

仍然不起作用。这就是我得到的错误:未找到视图“~/Demo/Index.aspx”或其主视图,或者没有视图引擎支持搜索的位置。搜索了以下位置:~/Demo/Index.aspxy您必须具有解决方案的默认结构。示例:您需要文件夹“视图”,在该文件夹下,每个控制器应有一个文件夹,其中应包含您的页面。根据操作,索引操作应具有Index.aspx页面。另外,请确保您正确地将其部署为mvc应用程序,但仍然不起作用。它正在我的web应用程序项目中查找视图,该视图位于我的插件项目中。它们都在同一个解决方案中。插件解决方案的路径为~/Views/Demo/Index.aspx,控制器名为DemoController。我正在看的网站是这样的,除了我在VB中做这件事,我不得不在MefControllerFactory方法中更改CreateController方法。我的一个项目是类库,另一个是MVC 3应用程序,如果这有区别的话。你必须在ViewEngine上注册视图,你注册了插件的视图了吗?
Return View()
Return View("Index")