mcpField
S
syncfusion-aspnetcore-diagram

syncfusion-aspnetcore-diagram

github.com/syncfusion开发0106 次安装3 周前更新
代码仓库

关于 syncfusion-aspnetcore-diagram

面向 ASP.NET Core 开发的 Syncfusion EJ2 Diagram 编码技能,指导在 Razor Pages 和 MVC 中实现图表。它强调仅依据随附参考文件并避免猜测未记录的 API。

主要功能

  1. 01遵循参考文件编写代码
  2. 02覆盖节点与连接线配置
  3. 03支持 BPMN 与 UML 图表
  4. 04涵盖自动布局与数据绑定
  5. 05包含导出、打印和交互指南

适用场景

  1. 01在 Razor Pages 中创建流程图
  2. 02为 MVC 应用配置 UML 图表
  3. 03将数据绑定到图表组件

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/syncfusion/aspnetcore-ui-components-skills --skill syncfusion-aspnetcore-diagram

安装后在 Claude Code 中输入/syncfusion-aspnetcore-diagram确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
bpmn-diagrams.md
connectors.md
data-binding.md
diagram-settings.md
getting-started.md
groups-and-containers.md
interaction-and-tools.md
labels-and-annotations.md
layouts.md
nodes.md
ports.md
serialization-and-export.md
shapes-and-styles.md
swimlanes.md
symbol-palette.md
uml-diagrams.md

详细介绍

⚠️ 严格使用规则——所有代码生成均须遵守

这些规则不可协商,每次代码生成请求都必须遵守。

规则 A — 仅使用提供的参考文件

  1. 每次请求都必须阅读 references/getting-started.md
  2. 仅当其他参考文件与用户的查询相关时,才阅读这些文件(参见下方导航指南)
  3. 禁止使用外部知识:
    • ❌ 不要使用互联网文档
    • ❌ 不要依据训练数据推测 Syncfusion API
    • ❌ 不要引用旧版 EJ1 API 或非 Tag Helper 语法
    • ✅ 如果无法从参考文件确认某项功能,请遵循规则 B

规则 B — 不得猜测或推断

如果参考文件中未明确记录某项功能、属性、API 或行为:

不得:

  • 虚构类属性、子类或构造函数重载
  • 推断 JavaScript 回调签名或方法名称
  • 假设存在文档未记载的模块注入
  • 根据其他 Syncfusion 组件进行泛化
  • 使用已弃用或未记录的形状类型

请改为回复:

⚠️ NOT DOCUMENTED: [feature name] is not covered in the reference files.
Skipping this feature to avoid generating incorrect code.

规则 C — 强制注入所需模块

为以下功能生成代码前,必须始终包含相应的注入:

功能所需注入
BPMN 图表ej.diagrams.Diagram.Inject(ej.diagrams.BpmnDiagrams)
导出 / 打印ej.diagrams.Diagram.Inject(ej.diagrams.PrintAndExport)
思维导图布局ej.diagrams.Diagram.Inject(ej.diagrams.MindMap)
复杂分层布局ej.diagrams.Diagram.Inject(ej.diagrams.ComplexHierarchicalTree)

除非参考文件中已确认,否则不要假设存在任何其他注入。


导航指南

使用此表确定要阅读哪个参考文件(规则 A)。
始终先阅读 references/getting-started.md,然后仅阅读与请求相关的文件。

参考文件查询涉及以下内容时阅读
📄 getting-started.md每次请求——NuGet 设置、Tag Helper 注册、CDN、第一个图表
📄 nodes.md创建 / 设置节点样式、offsetX/Y、width/height、渐变、阴影、展开 / 折叠、getNodeDefaults
📄 connectors.md线条(直线 / 正交 / 贝塞尔)、箭头、路由、sourceID/targetID、线段、getConnectorDefaults
📄 labels-and-annotations.md文本标签、字体、对齐方式、超链接
📄 ports.md连接点、端口定位、约束
📄 shapes-and-styles.md流程图 / 基本 / 路径 / 图像 / HTML / Native 形状、填充、描边、渐变、不透明度
📄 bpmn-diagrams.mdBPMN 事件、网关、活动、数据对象
📄 uml-diagrams.mdUML 类图 / 时序图 / 活动图、分类器、关系
📄 layouts.md分层、组织结构图、思维导图、辐射状、对称布局、getLayoutInfo
📄 swimlanes.md泳道结构、泳道、阶段、调色板集成
📄 groups-and-containers.md节点分组、Canvas/Stack 容器
📄 symbol-palette.mdejs-symbolpalette、调色板、拖放、工具提示
📄 data-binding.mdDataManager、dataSourceSettings、id/parentId 映射、setNodeTemplate、CRUD
📄 interaction-and-tools.md选择、拖动 / 调整大小 / 旋转、绘制工具、约束、撤销 / 重做
📄 serialization-and-export.mdsaveDiagram/loadDiagram、导出、打印
📄 diagram-settings.md图层、虚拟化、网格、标尺、滚动、页面设置、工具提示

快速入门

1. 安装 NuGet 包

Install-Package Syncfusion.EJ2.AspNet.Core

2. 注册标记帮助程序(~/Pages/_ViewImports.cshtml)

@addTagHelper *, Syncfusion.EJ2

3. 添加 CDN 资源(~/Pages/Shared/_Layout.cshtml)

<head>
    <link rel="stylesheet" href="https://cdn.syncfusion.com/ej2/{{ site.ej2version }}/fluent.css" />
    <script src="https://cdn.syncfusion.com/ej2/{{ site.ej2version }}/dist/ej2.min.js"></script>
</head>
<body>
    ...
    <ejs-scripts></ejs-scripts>
</body>

4. 在 Razor 页面中添加图表(~/Pages/Index.cshtml)

<ejs-diagram id="diagram" width="100%" height="550px"
    nodes="@ViewBag.nodes"
    connectors="@ViewBag.connectors"
    getNodeDefaults="@ViewBag.getNodeDefaults"
    getConnectorDefaults="@ViewBag.getConnectorDefaults">
</ejs-diagram>

5. PageModel / 控制器

public IActionResult OnGet()
{
    List<DiagramNode> nodes = new List<DiagramNode>
    {
        new DiagramNode { Id = "node1", OffsetX = 100, OffsetY = 100, Width = 100, Height = 60,
            Annotations = new List<DiagramNodeAnnotation> {
                new DiagramNodeAnnotation { Content = "Start" }
            },
            Shape = new { type = "Flow", shape = "Terminator" }
        },
        new DiagramNode { Id = "node2", OffsetX = 300, OffsetY = 100, Width = 100, Height = 60,
            Annotations = new List<DiagramNodeAnnotation> {
                new DiagramNodeAnnotation { Content = "Process" }
            },
            Shape = new { type = "Flow", shape = "Process" }
        }
    };
    
    List<DiagramConnector> connectors = new List<DiagramConnector>
    {
        new DiagramConnector { Id = "conn1", SourceID = "node1", TargetID = "node2" }
    };
    
    ViewBag.nodes = nodes;
    ViewBag.connectors = connectors;
    ViewBag.getNodeDefaults = "getNodeDefaults";
    ViewBag.getConnectorDefaults = "getConnectorDefaults";
    return Page();
}
function getNodeDefaults(node) {
    node.height = 60;
    node.width = 120;
    return node;
}

function getConnectorDefaults(connector) {
    connector.type = 'Orthogonal';
    return connector;
}

重要 C# 类

类用途
DiagramNode节点/形状元素
DiagramConnector节点之间的连接线
DiagramNodeAnnotation节点上的文本标签
DiagramConnectorAnnotation连接器上的文本标签
DiagramPort节点上的连接点
DiagramLayer用于组织元素的图层
DiagramPageSettings页面大小、方向、背景
BpmnShapesBPMN 形状配置
UmlClassifierShapeModelUML 类图形状

常见形状类型

流程形状

Terminator, Process, Decision, Document, DirectData, MultiDocument, PreDefinedProcess, Delay, Annotation, ManualOperation, ManualInput, Card, Or, SummingJunction, Extract, Merge, Sort, OffPageReference

用法:

Shape = new { type = "Flow", shape = "Process" }
基本形状

Rectangle, Ellipse, Triangle, Pentagon, Hexagon, Heptagon, Octagon, Star, Cross, Diamond, CylindricalShape, Trapezoid, Parallelogram, Rhombus

用法:

Shape = new { type = "Basic", shape = "Rectangle" }

何时使用此技能

✅ 在 ASP.NET Core(Razor Pages / MVC)中创建任何图表
✅ 构建流程图、组织结构图、网络图
✅ 实现 BPMN 或 UML 图表
✅ 配置节点/连接器的形状、样式和注释
✅ 设置自动布局
✅ 添加用于拖放的符号面板
✅ 从数据库绑定图表数据
✅ 导出图表或打印
✅ 启用绘图工具、撤销/重做和图层

评论

支持 Markdown