Asp.net mvc 使用组件自己的模型视图控制器文件夹创建组件。为他们改变路线?

Asp.net mvc 使用组件自己的模型视图控制器文件夹创建组件。为他们改变路线?,asp.net-mvc,asp.net-mvc-4,asp.net-mvc-routing,Asp.net Mvc,Asp.net Mvc 4,Asp.net Mvc Routing,我的问题是我有一个MVC4项目,我想创建一些组件,我想使用局部视图在一些视图中添加这些组件。我将向您展示我希望在MVC项目中创建的文件夹逻辑的图片 因此,我如何添加此部分视图,因为当我尝试访问它们时,它们首先会在我的应用程序的主视图文件夹中查看,是否有方法将custum路由到我的应用程序 @{ Html.RenderPartial("Components\\Chart\\View\\Index.cshtml"); } 这会产生这样的错误 找不到部分视图“concomponents\Char

我的问题是我有一个MVC4项目,我想创建一些组件,我想使用局部视图在一些视图中添加这些组件。我将向您展示我希望在MVC项目中创建的文件夹逻辑的图片

因此,我如何添加此部分视图,因为当我尝试访问它们时,它们首先会在我的应用程序的主视图文件夹中查看,是否有方法将custum路由到我的应用程序

@{ Html.RenderPartial("Components\\Chart\\View\\Index.cshtml");  }
这会产生这样的错误

找不到部分视图“concomponents\Chart\view\Index.cshtml” 或者没有视图引擎支持搜索的位置。以下 搜索地点: ~/Views/Home/concomponents\Chart\View\Index.cshtml.aspx ~/Views/Home/concomponents\Chart\View\Index.cshtml.ascx ~/Views/Shared/concomponents\Chart\View\Index.cshtml.aspx ~/Views/Shared/concomponents\Chart\View\Index.cshtml.ascx ~/Views/Home/concomponents\Chart\View\Index.cshtml.cshtml ~/Views/Home/concomponents\Chart\View\Index.cshtml.vbhtml ~/Views/Shared/concomponents\Chart\View\Index.cshtml.cshtml ~/Views/Shared/concomponents\Chart\View\Index.cshtml.vbhtml


您可以使用
~
作为项目目录来指定路径

Html.RenderPartial("~/Components/Chart/View/Index.cshtml",model)
此外,此问题与路由无关。路由是将传入的请求映射到您的操作方法。ASP.NET MVC尝试使用控制器和操作名称定位视图。如果它不在那里,它还会检查共享文件夹。您可以通过指定精确路径来覆盖此行为,如上面的示例所示

更新:


您还必须对视图文件夹进行一些配置。将您的Web.config复制到默认视图文件夹中,或者将所有视图配置移动到project的Web.config文件中,就可以做到这一点。

您可以使用
~
作为项目目录来指定路径

Html.RenderPartial("~/Components/Chart/View/Index.cshtml",model)
此外,此问题与路由无关。路由是将传入的请求映射到您的操作方法。ASP.NET MVC尝试使用控制器和操作名称定位视图。如果它不在那里,它还会检查共享文件夹。您可以通过指定精确路径来覆盖此行为,如上面的示例所示

更新:


您还必须对视图文件夹进行一些配置。将Web.config复制到默认视图文件夹中,或者将所有视图配置移动到project的Web.config文件中,都可以做到这一点。

未找到部分视图“~/Components/Chart/view/Index.cshtml”,或者没有视图引擎支持搜索的位置。已搜索以下位置:。。。试过这个。。。这就是我得到的。@Mihai我更新了答案,看起来我们也不需要扩展。Components文件夹在主项目文件夹中吗?是的,它在主项目中,是一个单独的文件夹组件,就像控制器视图和模型的主文件夹一样。。。我可以接受我的观点。。但它说现在。“~/Components/Chart/view/Chart.cshtml”处的视图必须派生自WebViewPage或WebViewPage。我在视图文件夹中复制了webconfig文件,现在虚拟目录有问题。在应用程序级别之外使用注册为allowDefinition='MachineToApplication'的节是错误的。此错误可能是由于未将虚拟目录配置为IIS中的应用程序造成的。@Mihai您可能希望查看此错误,因为未找到部分视图“~/Components/Chart/view/Index.cshtml”,或者没有视图引擎支持搜索的位置。已搜索以下位置:。。。试过这个。。。这就是我得到的。@Mihai我更新了答案,看起来我们也不需要扩展。Components文件夹在主项目文件夹中吗?是的,它在主项目中,是一个单独的文件夹组件,就像控制器视图和模型的主文件夹一样。。。我可以接受我的观点。。但它说现在。“~/Components/Chart/view/Chart.cshtml”处的视图必须派生自WebViewPage或WebViewPage。我在视图文件夹中复制了webconfig文件,现在虚拟目录有问题。在应用程序级别之外使用注册为allowDefinition='MachineToApplication'的节是错误的。此错误可能是由于未将虚拟目录配置为IIS中的应用程序造成的。@Mihai您可能想看看这个