我正在使用ASP.Net MVC Core的RC2。
我已将我的using指令添加到_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。
答案 0 :(得分:2)
如果你有最新版本的ASP.NET Core,这可以解决你的问题:
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方法中。
答案 1 :(得分:1)
我遇到了同样的问题,并通过Google发现了这个问题。我通过确保我的类库是.NET Core/Class Library
而不是Windows/Class Library
(使用&#34;添加新项目&#34;对话框)来解决它。我最终删除了我的旧类库,创建了一个正确类型的新项目,并将我的源文件添加到它。