Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么在外部部件中为嵌入式ViewComponent使用Poco模型会引发部件错误?_C#_Asp.net Core_Visual Studio 2017 - Fatal编程技术网

C# 为什么在外部部件中为嵌入式ViewComponent使用Poco模型会引发部件错误?

C# 为什么在外部部件中为嵌入式ViewComponent使用Poco模型会引发部件错误?,c#,asp.net-core,visual-studio-2017,C#,Asp.net Core,Visual Studio 2017,我有一个Poco模型,在实际视图组件所在的外部部件中 public class HeaderModel { public HeaderModel() { MainMenuItems = new List<MainMenuItem>(); } public string ViewComponentName { get; set; } public List<MainMenuItem> MainMenuItems {

我有一个Poco模型,在实际视图组件所在的外部部件中

 public class HeaderModel
{
    public HeaderModel()
    {
        MainMenuItems = new List<MainMenuItem>();
    }

    public string ViewComponentName { get; set; }
    public List<MainMenuItem> MainMenuItems { get; set; }
}
公共类标题模型
{
公共主管模型()
{
MainMenuItems=新列表();
}
公共字符串ViewComponentName{get;set;}
公共列表MainMenuItems{get;set;}
}
然后将其作为视图组件的模型返回

public async Task<IViewComponentResult> InvokeAsync()
    {
        var headerModel = new HeaderModel
        {
            ViewComponentName = ApplicationConfiguration.Configuration.Settings.Ui.RightSidebar.ViewComponentName,
            MainMenuItems = MenuProvider.GetTopMenu().ToList()
        };


        return View(headerModel);
    }
public异步任务InvokeAsync()
{
var headerModel=新的headerModel
{
ViewComponentName=ApplicationConfiguration.Configuration.Settings.Ui.RightSidebar.ViewComponentName,
MainMenuItems=MenuProvider.GetTopMenu().ToList()
};
返回视图(headerModel);
}
当我这样做时,我会得到:

FileNotFoundException:无法加载文件或程序集“UiSmart.Module,版本=1.0.0.0,区域性=中性,PublicKeyToken=null”或其依赖项之一。系统找不到指定的文件

有趣的是,如果我指定一个IEnumerable作为我的模型类型,它就工作得很好,但是当我在视图中使用Poco模型时,它有一个令人生厌的配合,更令人恼火的是,该模型是在与视图组件.cs和.cshtml页面相同的程序集中定义的

我有一种感觉,视图是在服务器的上下文中运行的,它所属的实际程序集不再在上下文/引用中,而是在启动期间作为应用程序部分添加的

所以我很困惑


有人知道为什么会发生这种情况吗?

好的,问题已经解决了,我现在将模块DLL复制到WebApps bin文件夹中,而不是在生成后将其复制到模块文件夹中,一切都很好,本质上说,只要模块与入口程序集并排放置,它就可以工作。

好的,问题就解决了,我现在将模块DLL复制到WebApps bin文件夹,而不是在构建后将其复制到模块文件夹,一切都很好,本质上说,只要模块与入口组件并排放置,它就可以工作。

此uismart.module是否可以在该外部组件中引用,并且是该HeaderModel所必需的?其想法是拥有独立的模块,因此,如果你想要一个用户界面,那么你只需将dll复制到modules文件夹中,瞧,你就有了一个用户界面。所以引用它会有点违背目的,我不希望服务器关心ui模块,只提供它所公开的内容。什么是UiSmart.module,您在哪里引用它?它可能不会被复制到输出文件夹中。好的,但是如果您在UI项目中引用该UiSmart.Module,会发生什么情况?错误是否已经消失,或者仍然存在,或者您是否收到了其他错误?我只是猜测该模块中的某些内容可能会泄漏到您的UI项目中OK,因此问题得到了解决,在构建之后,我不再将模块DLL复制到模块文件夹中,而是将其复制到WebApps bin文件夹中,一切正常,从本质上说,只要模块与入口程序集并排放置,一切都很好。这个uismart.module是否可以在外部程序集中引用,并且是HeaderModel所必需的?其思想是拥有独立的模块,因此如果您想要一个ui,那么您只需将dll复制到模块文件夹中,瞧,您就拥有了一个ui。所以引用它会有点违背目的,我不希望服务器关心ui模块,只提供它所公开的内容。什么是UiSmart.module,您在哪里引用它?它可能不会被复制到输出文件夹中。好的,但是如果您在UI项目中引用该UiSmart.Module,会发生什么情况?错误是否已经消失,或者仍然存在,或者您是否收到了其他错误?我只是猜测该模块中的某些内容可能会泄漏到您的UI项目中OK,因此问题得到了解决,在构建之后,我不再将模块DLL复制到模块文件夹中,而是将其复制到WebApps bin文件夹中,一切正常,本质上说,只要模块位于入口组件的旁边,一切都很好。