InvalidOperationException:找不到视图

时间:2018-01-11 16:35:06

标签: c# asp.net asp.net-core class-library

我有一个ASP.Net项目,我想使用类库项目来创建可重用的Razor视图组件。我向我的类库项目添加了AspNetCore.MvcAspNetCore.Razor.Tools个引用。

我在ViewComponent文件中创建了Components/DataTableComponent.cs类:

namespace Rasha.Utility.Components
{
    public class DataTableComponent:ViewComponent
    {
        public async Task<IViewComponentResult> InvokeAsync()
        {
            var model = new DataTableModel()
            {
                Name = "Alliiiiiiiiiiiiiiiii"
            };
            return View("Default.cshtml", model);
        }
    }
}

Views/Shared/Components/DataTableComponent/Default.cshtml文件中查看。

这是我的类库.csproj文件:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netcoreapp1.1</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.2" />
    <PackageReference Include="Microsoft.AspNetCore.Razor.Tools" Version="1.1.0-preview4-final" />
  </ItemGroup>

  <ItemGroup>
    <EmbeddedResource Include="Views\Shared\Components\**\*.cshtml" />
  </ItemGroup>
</Project>

为什么我收到此错误:

  

InvalidOperationException:找不到视图'Components / DataTableComponent / Default.cshtml'。搜索了以下位置:   /Areas/Administration/Views/Customer/Default.cshtml

编译器似乎在我的MVC项目中寻找视图而不是类库项目。

感谢。

1 个答案:

答案 0 :(得分:0)

我的梦想实现了:

Creating a Razor Class Library project in ASP.NET Core现在可用。