Razor类库加载不同位置视图异常排查(无需扩展IViewLocationExpander)
ASP.NET Core Razor类库插件系统ViewComponent渲染问题排查与解决
问题背景
基于ASP.NET Core的应用实现了插件系统(采用Razor类库),并启用Razor运行时编译。插件内ViewComponent采用自定义结构:
Components/SampleComponent.cs(ViewComponent逻辑类)Views/SampleComponent.cshtml(视图文件)
核心问题现象
- 在
SampleComponent.Invoke方法中使用默认返回视图的写法(如return View();),渲染过程无报错,但最终输出内容为空; - 尝试使用绝对路径
Plugins/{plugin_name}/Views/SampleComponent.cshtml指定视图路径时,应用直接抛出InvalidOperationException,提示找不到视图; - 需求:避免通过扩展
IViewLocationExpander来解决问题,排查根本原因。
排查过程
EDIT1:视图文件位置修正
调试阶段发现,需将插件的Views文件夹放置在项目src目录下,而非bin目录,否则运行时无法正确识别视图文件,但修正后空渲染问题仍未解决。EDIT2:空渲染问题解决
参考Stack Overflow对应方案,已解决空渲染问题。
内容的提问来源于stack exchange,提问作者luve
相关产品推荐
相关产品推荐

