我正在尝试创建一个UI中间件,并想知道推荐的方法是什么。
我应该在我的中间件中再次执行AddMVC并为其提供自定义路由,还是通过嵌入资源来实现。
我试图在我的中间件中创建一个MVC,我可以使用自定义路由命中控制器,但不能在我的中间件项目中查看视图。示例网站似乎总是只查看主MVC视图文件夹。
如果您需要更多信息,请告诉我,我会相应地更新问题。
答案 0 :(得分:0)
尝试使用嵌入视图。你需要添加:
"buildOptions": { "embed": [ "Views/**" ] },
然后你应该告诉mvc查看嵌入文件
services
.AddMvc()
.AddRazorOptions(
o =>
{
o.FileProviders.Add(new EmbeddedFileProvider(yourAssembly, yourAssembly.GetName().Name));
}
);
您也可以尝试申请部分:
AssemblyPart part = new AssemblyPart(yourAssembly);
mvcBuilder.ConfigureApplicationPartManager(manager =>
{
manager.ApplicationParts.Add(part);
});
foreach (var applicationPart in mvcBuilder.PartManager.ApplicationParts)
{
var assemblyPart = applicationPart as AssemblyPart;
if (assemblyPart != null)
{
mvcBuilder.AddRazorOptions(options =>
{
options.FileProviders.Add(new EmbeddedFileProvider(assemblyPart.Assembly, applicationPart.Name));
});
}
}
希望有所帮助