syncfusion/aspnetmvc-ui-components-skills · Archived

syncfusion-aspnetmvc-chat-ui

Implement a real-time Chat UI with Syncfusion ASP.NET MVC ChatUI component.

First seen Jul 23, 2026

Installation

$ npx skills add syncfusion/aspnetmvc-ui-components-skills --skill syncfusion-aspnetmvc-chat-ui

Summary

  • Implement a real-time Chat UI with Syncfusion ASP.NET MVC ChatUI component.
  • Use when building chat interfaces, messaging apps, bot integrations, or interactive conversations.
  • Covers messages, header/footer, templates, events, methods, file attachments, typing indicators, mentions, globalization, speech-to-text, and bot integrations.

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from syncfusion/aspnetmvc-ui-components-skills · top by installs.

npx skills add syncfusion/aspnetmvc-ui-components-skills

Browse all from syncfusion/aspnetmvc-ui-components-skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Default branch master
Open issues 0
Status Archived

Skill metadata

Parsed from SKILL.md frontmatter.

Version34.1.29
More metadata
author
Syncfusion Inc
version
34.1.29

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 9,375 B
  • docs SUMMARY.md 370 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 3 installs

SKILL.md

Syncfusion ASP.NET MVC Chat UI

The Syncfusion ASP.NET MVC Chat UI (Syncfusion.EJ2.InteractiveChat.ChatUI) is a feature-rich conversational interface component for building real-time chat applications, AI assistants, and bot integrations. It supports structured messages, user avatars, typing indicators, file attachments, mention tagging, markdown rendering, and extensive template customization.

Navigation Guide

Getting Started

📄 Read: [references/getting-started.md](references/getting-started.md)

  • NuGet package installation (Syncfusion.EJ2.MVC5)
  • Namespace, stylesheet, and script references
  • Script manager registration
  • Basic Chat UI rendering with @Html.EJS().ChatUI()
  • Configuring initial messages and current user

Messages

📄 Read: [references/messages.md](references/messages.md)

  • ChatUIMessage model: Text, Id, Author, Timestamp, Status, AttachedFile
  • Pinned messages, reply-to threading (ChatUIReplyTo with Timestamp, TimestampFormat, MentionUsers), forwarded messages
  • Compact mode, auto-scroll, quick reply suggestions
  • Message toolbar with MessageToolbarItemClickedEventArgs (item, message, cancel, event)
  • Message status: IconCss, Text, Tooltip usage
  • Markdown content rendering with marked + DOMPurify

User Configuration

📄 Read: [references/user-configuration.md](references/user-configuration.md)

  • ChatUIUser model: Id, User, AvatarUrl, AvatarBgColor, CssClass, StatusIconCss
  • Defining the current user with the User property
  • Avatar images, fallback initials, background color
  • Presence status icons (online, offline, busy, away)

Header and Toolbar

📄 Read: [references/header-and-toolbar.md](references/header-and-toolbar.md)

  • Show/hide header (ShowHeader), header text and icon
  • ChatUIToolbarSettings — header toolbar items
  • Toolbar item properties: IconCss, Type, Text, Visible, Disabled, Tooltip, CssClass, Align, TabIndex, Template
  • ItemClicked event handler

Footer and Templates

📄 Read: [references/footer-and-templates.md](references/footer-and-templates.md)

  • Show/hide footer (ShowFooter), custom footer template
  • Empty chat template, message template, suggestion template
  • Typing users template, time break template
  • Template context variables (message, index, users, messageDate, suggestion)

Events and Methods

📄 Read: [references/events-and-methods.md](references/events-and-methods.md)

  • Created, MessageSend, UserTyping events with full event args (cancel, isTyping, message, user, itemData)
  • addMessage() — add message as string or object
  • updateMessage() — edit an existing message by ID
  • scrollToBottom() — programmatic scroll to latest message
  • scrollToMessage(messageId) — scroll to a specific message by ID
  • focus() — programmatically focus the chat input textarea
  • Accessing the ChatUI instance via ej.base.getInstance()

Appearance and Layout

📄 Read: [references/appearance-and-layout.md](references/appearance-and-layout.md)

  • Placeholder, Width, Height, CssClass
  • Timestamps (ShowTimeStamp, TimeStampFormat)
  • Time breaks (ShowTimeBreak, TimeBreakTemplate)
  • Typing indicator (TypingUsers)
  • Load on demand (LoadOnDemand) for long conversation histories
  • Persistence (EnablePersistence) — save and restore state across page reloads

File Attachments

📄 Read: [references/file-attachments.md](references/file-attachments.md)

  • Enable file attachments (EnableAttachments)
  • AttachmentSettings: SaveUrl, RemoveUrl, AllowedFileTypes, MaxFileSize, SaveFormat, Path
  • Drag-and-drop, maximum file count
  • Custom attachment and preview templates
  • Pre-populating attachments on messages at initial render (AttachedFile)
  • Attachment lifecycle events and ChatAttachmentClickEventArgs (file, cancel, event)

Mentions and Globalization

📄 Read: [references/mentions-and-globalization.md](references/mentions-and-globalization.md)

  • MentionUsers list, @ mention trigger popup
  • Custom trigger character (MentionTriggerChar)
  • Predefined mentions in message text using {0}, {1} placeholders
  • MentionSelect event
  • Localization (Locale, ej.base.L10n.load) and RTL (EnableRtl)

Bot Integrations and Speech-to-Text

📄 Read: [references/bot-integrations.md](references/bot-integrations.md)

  • Microsoft Bot Framework (Direct Line) integration
  • Google Dialogflow integration
  • Speech-to-Text via Web Speech API + SpeechToText component
  • Secure token server pattern
  • MessageSend + addMessage() integration pattern
  • Troubleshooting common bot connection issues

Quick Start Example

Controller (HomeController.cs):

using Syncfusion.EJ2.InteractiveChat;

public ActionResult Index()
{
    var currentUser = new ChatUIUser { Id = "user1", User = "Albert" };
    var otherUser   = new ChatUIUser { Id = "user2", User = "Michale Suyama" };

    var messages = new List<ChatUIMessage>
    {
        new ChatUIMessage { Text = "Hi Michale, are we on track for the deadline?", Author = currentUser },
        new ChatUIMessage { Text = "Yes, the design phase is complete.", Author = otherUser },
        new ChatUIMessage { Text = "I'll review it and send feedback by today.", Author = currentUser }
    };

    ViewBag.CurrentUser = currentUser;
    ViewBag.Messages    = messages;
    return View();
}

View (Index.cshtml):

@using Syncfusion.EJ2.InteractiveChat

<div style="height:400px; width:450px;">
    @Html.EJS().ChatUI("chatUI")
        .User(ViewBag.CurrentUser)
        .Messages(ViewBag.Messages)
        .HeaderText("Team Chat")
        .Render()
</div>

Required layout references (_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>
    ...
    @Html.EJS().ScriptManager()
</body>

Common Patterns

Programmatically Add a Message (Bot Reply)

function onMessageSend(args) {
    var chatUI = ej.base.getInstance(document.getElementById('chatUI'), ejs.interactivechat.ChatUI);
    fetch('/api/bot/reply', {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify({ text: args.message.text })
    })
    .then(r => r.json())
    .then(data => chatUI.addMessage({ text: data.reply, author: botUser }));
}

Enable File Attachments

@Html.EJS().ChatUI("chatUI")
    .User(ViewBag.CurrentUser)
    .EnableAttachments(true)
    .AttachmentSettings(new ChatUIFileAttachmentSettings {
        SaveUrl = Url.Content("https://services.syncfusion.com/aspnet/production/api/FileUploader/Save"),
        RemoveUrl = Url.Content("https://services.syncfusion.com/aspnet/production/api/FileUploader/Remove")
    })
    .Render()

Show Typing Indicator (Client-Side)

function onCreated() {
    var chatUI = ej.base.getInstance(document.getElementById('chatUI'), ejs.interactivechat.ChatUI);
    chatUI.typingUsers = [{ id: "user2", user: "Michale Suyama" }];
    chatUI.dataBind();
}

Key Properties Reference

Property Type Default Description
User ChatUIUser Current logged-in user
Messages List<ChatUIMessage> [] Initial message collection
HeaderText string Text shown in header
HeaderIconCss string CSS class for header icon
ShowHeader bool true Show or hide the header
ShowFooter bool true Show or hide the footer
Placeholder string "Type your message…" Textarea placeholder
Width string "100%" Component width
Height string "100%" Component height
CssClass string Custom CSS class
AutoScrollToBottom bool false Auto-scroll on new message
ShowTimeStamp bool true Show message timestamps
TimeStampFormat string "dd/MM/yyyy hh:mm a" Global timestamp format
ShowTimeBreak bool false Show date separators
EnableCompactMode bool false Align all messages left
LoadOnDemand bool false Lazy-load messages on scroll
EnablePersistence bool false Persist state across page reloads via localStorage
EnableAttachments bool false Enable file attachments
MentionUsers List<ChatUIUser> Users available for @ mention
TypingUsers List<ChatUIUser> Users currently typing
EnableRtl bool false Right-to-left layout
Locale string "en" Localization culture code