我做了一个项目,我有一个基本的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 “
答案 0 :(得分:2)
您必须注册插件的视图
使用asp.net mvc
的流程所以,如果您正在使用DI开发插件,那么您必须记住一些事情 - 自定义视图引擎 -custom控制器工厂
默认的ControllerFactory无法解析插件的控制器,它与viewEngine相同,你必须告诉viewEngine该视图在哪里
答案 1 :(得分:2)
您说您已将所有视图嵌入到单独的项目中。使用内置视图引擎将无法正常工作。您必须按照此thread中的指定在内置视图引擎中指定视图位置,或者创建custom view engine。
答案 2 :(得分:1)
~/Demo/Index
应该是正确的路线
另外,请修复那样的回报
Return View()
或
Return View("Index")