2016-06-08 72 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方法啓動班。

相關問題