2016-06-08 81 views
2

我正在使用ASP.Net MVC Core的RC2。_ViewImports.cshtml中的错误命名空间'yyy'中不存在类型或名称空间名称'xxx'

我已将我的使用指令添加到_ViewImports,它抱怨命名空间不正确。我在我的控制器中使用完全相同的命名空间,它工作正常,但不会在视图中工作。

using指令在同一解决方案中引用类库。

@using xxx.Web 
@using xxx.Web.Models 
@using xxx.Web.Models.AccountViewModels 
@using xxx.Web.Models.ManageViewModels 
@using Microsoft.AspNetCore.Identity 
@using xxx.yyy 
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 

我已经对这个问题做了大量的研究,但是看起来它应该和添加命名空间一样简单。它甚至在_ViewImports中自动完成,所以我不是拼错它(我已经复制并粘贴它以防万一)。

万一它是相关的,我会使用“顶级”命名空间,所以我的Web项目是xxx.Web和我的类库是xxx.yyy。

回答

1

我遇到了同样的问题,并通过Google发现了这个问题。我通过确保我的类库是.NET Core/Class Library而不是Windows/Class Library(使用“添加新项目”对话框时)来解决此问题。我最终删除了旧的类库,创建了正确类型的新项目,并添加了我的源文件。

+0

也为我工作。谢谢! –

2

如果您有最新版本的ASP.NET核心的,这可以解决你的问题:

services.Configure<RazorViewEngineOptions>(options => 
    { 
      var previous = options.CompilationCallback; 
      options.CompilationCallback = (context) => 
      { 
       previous?.Invoke(context); 
       context.Compilation = context.Compilation.AddReferences(MetadataReference.CreateFromFile(typeof(hbulens.MyBucketList.Utilities.EnumUtilities).Assembly.Location)); 
      }; 
    }); 

,或者你可以尝试:

services.Configure((RazorViewEngineOptions options) => 
{ 
    var previous = options.CompilationCallback; 
    options.CompilationCallback = (context) => 
    { 
     previous?.Invoke(context); 
     context.Compilation = context.Compilation.AddReferences(myAssemblies); 
    }; 
}); 

将这个代码的的ConfigureServices方法启动班。

相关问题