syncfusion-aspnetcore-chat-ui
Syncfusion ASP.NET Core Chat-UI Control
Overview
The Chat-UI component provides a complete conversational interface with real-time messaging, file attachments, user presence, and extensive customization options. This skill guides you through implementing chat interfaces for customer support, team collaboration, and interactive applications using ASP.NET Core tag helpers and Razor pages.
The Chat-UI component is an interactive messaging interface featuring:
- Rich Message Support: Text content, pinned messages, threaded replies, message forwarding
- User Management: Multi-user conversations, presence status, user configuration
- File Attachments: Upload, preview, download with file type/size restrictions
- Event System: Created, message send, user typing, attachment events
- Templates: Customizable UI for empty chat, messages, typing indicator, suggestions, footer
- Appearance: Configurable placeholder, width, height, CSS classes
- Timestamps: Show/hide timestamps with customizable format
- Advanced Features: Compact mode, globalization, RTL support, speech-to-text
Quick Start Example
@using Syncfusion.EJ2.InteractiveChat;
<div style="height:400px; width:450px">
<ejs-chatui id="chatUI">
<e-chatui-user id="user1" user="Albert"></e-chatui-user>
<e-chatui-messages>
@foreach (var message in ViewBag.ChatMessagesData)
{
<e-chatui-message text="@message.Text" author="@message.Author"></e-chatui-message>
}
</e-chatui-messages>
</ejs-chatui>
</div>
Corresponding C# Controller:
using Syncfusion.EJ2.InteractiveChat;
public ActionResult Default()
{
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?", Author = currentUser },
new ChatUIMessage() { Text = "Yes, all set!", Author = otherUser }
};
ViewBag.ChatMessagesData = messages;
return View();
}
Documentation Navigation
Getting Started
📄 Read: references/getting-started.md
- NuGet package installation and dependencies
- ASP.NET Core project setup with Razor pages
- Tag helper registration and configuration
- CDN stylesheet and script setup
- Script manager registration
- Basic Chat-UI implementation
- Initial user and message configuration
Message Configuration
📄 Read: references/messages-configuration.md
- Message model setup and properties
- Adding and managing text messages
- Message configuration (ID, text, author, timestamp)
- Pinned messages for important conversations
- Reply-to for threaded conversations
- Forwarded messages and message tracking
- Compact mode for streamlined layouts
User Configuration
📄 Read: references/user-configuration.md
- ChatUIUser model setup and properties
- User identity configuration
- Setting current user context
- Multi-user support and management
- User presence and status indicators
- Avatar configuration and styling
Appearance & Styling
📄 Read: references/appearance-styling.md
- Placeholder text customization
- Width and height configuration
- CSS class application and customization
- Component-level styling
- Theme customization approaches
- Responsive design patterns
Events & Interactions
📄 Read: references/events-interactions.md
- Created event for initialization
- Message send event handling
- User typing event detection
- Attachment upload events (before, success, failure)
- Attachment removal and click events
- Event binding patterns and best practices
Methods & API
📄 Read: references/methods-api.md
- addMessage method for programmatic message addition
- updateMessage method for editing existing messages
- scrollToBottom method for view navigation
- Real-time integration with SignalR
- Best practices for performance and error handling
Templates & Customization
📄 Read: references/templates-customization.md
- Empty chat template for initial states
- Message custom templates with jsrender
- Time break template for message organization
- Typing indicator template customization
- Suggestion template for auto-complete
- Footer template for custom input areas
- Advanced template patterns and styling
File Attachments
📄 Read: references/file-attachments.md
- Enable attachment support with enableAttachments
- Configure attachment settings
- Save and remove URL endpoints
- File type restrictions (allowedFileTypes)
- File size limits (maxFileSize)
- Save format options (Blob vs Base64)
- Drag-and-drop support configuration
- Server path and upload handling
Header & Footer
📄 Read: references/header-footer.md
- Show/hide header with showHeader property
- Header text configuration and display
- Header icon styling with headerIconCss
- Show/hide footer with showFooter property
- Footer template customization
- Input area configuration
Timestamps & Time Breaks
📄 Read: references/timestamps-timebreaks.md
- Show/hide timestamps with showTimeStamp
- Timestamp format customization (timeStampFormat)
- Time break separators for message organization
- Date-wise message grouping
- Timestamp template patterns
Typing Indicators
📄 Read: references/typing-indicator.md
- Show/hide typing indicator
- Multi-user typing display
- Typing indicator template customization
- User presence detection
- Styling typing indicator UI
Mentions & User References
📄 Read: references/mentions-integration.md
- Configure mentionable users
- Mention trigger character customization
- Predefined mentions in messages
- Mention selection and events
- Mention item template and styling
Globalization & RTL
📄 Read: references/globalization-rtl.md
- Localization and multi-language support
- Setting culture and locale
- RTL (Right-to-Left) layout support
- Language-specific templates
- Speech-to-text localization
Toolbar Configuration
📄 Read: references/toolbar-configuration.md
- Header toolbar configuration and items
- Message toolbar settings and customization
- Toolbar item configuration and events
- Custom toolbar actions and handlers
- Toolbar visibility and styling
Advanced Features
📄 Read: references/advanced-features.md
- Load on demand with scroll handling
- Auto-scroll to bottom behavior
- Enable persistence for state management
- Performance optimization techniques
- Server-side data loading strategies
Suggestions Feature
📄 Read: references/suggestions-feature.md
- Enable suggestions with suggestions property
- Suggestion template customization
- Context-based suggestion filtering
- Suggestion selection and handling
- Custom suggestion UI and styling
Common Patterns
Create a Basic Chat Interface
<div style="height:400px; width:500px">
<ejs-chatui id="chatUI"
placeholder="Type a message..."
showHeader="true"
headerText="Support Chat">
<e-chatui-user id="user1" user="Support Agent"></e-chatui-user>
</ejs-chatui>
</div>
Add Messages with Events
<ejs-chatui id="chatUI" messageSend="onMessageSend">
<e-chatui-user id="user1" user="Albert"></e-chatui-user>
<e-chatui-messages>
@foreach (var message in ViewBag.ChatMessagesData)
{
<e-chatui-message text="@message.Text"
author="@message.Author"
timeStamp="@message.TimeStamp"></e-chatui-message>
}
</e-chatui-messages>
</ejs-chatui>
<script>
function onMessageSend(args) {
// Handle message send event
console.log("Message sent:", args);
}
</script>
Enable File Attachments
<ejs-chatui id="chatUI" enableAttachments="true">
<e-chatui-user id="user1" user="Albert"></e-chatui-user>
<e-chatui-attachmentsettings
saveUrl=@Url.Content("https://services.syncfusion.com/aspnet/production/api/FileUploader/Save")
removeUrl=@Url.Content("https://services.syncfusion.com/aspnet/production/api/FileUploader/Remove")
maxFileSize="5000000"
allowedFileTypes=".pdf,.docx,.xlsx">
</e-chatui-attachmentsettings>
</ejs-chatui>
Key Properties
| Property | Type | Purpose |
|---|---|---|
id |
string | Unique identifier for the ChatUI component |
placeholder |
string | Input field hint text (default: "Type your message…") |
width |
string | Chat UI width (default: 100%) |
height |
string | Chat UI height (default: 100%) |
showHeader |
boolean | Display header section (default: true) |
headerText |
string | Header title/name display |
headerToolbar |
object | Configure toolbar items in header |
showFooter |
boolean | Display input footer (default: true) |
showTimeStamp |
boolean | Display message timestamps (default: true) |
timeStampFormat |
string | Timestamp format pattern (default: "dd/MM/yyyy hh:mm a") |
cssClass |
string | CSS classes for styling |
enableAttachments |
boolean | Enable file upload support (default: false) |
enableCompactMode |
boolean | Align all messages left (default: false) |
loadOnDemand |
boolean | Enable lazy loading of messages (default: false) |
autoScrollToBottom |
boolean | Automatically scroll to latest message (default: true) |
enablePersistence |
boolean | Persist chat state across sessions (default: false) |
suggestions |
array | Quick reply suggestions for users |
messageToolbarSettings |
object | Configure message-level toolbar actions |
Common Use Cases
Use Case 1: Customer Support Chat
- Multiple support agents handling customer queries
- File attachment for screenshots/documents
- Message history with timestamps
- Typing indicators to show agent engagement
- Header with support agent name and status
Use Case 2: Team Collaboration
- Mention team members with @ mentions
- Pin important discussion points
- Forward messages for reference
- Message editing and deletion
- Multi-user presence indicators
Use Case 3: Multilingual Support
- RTL support for Arabic/Hebrew languages
- Localized UI strings via globalization
- Culture-specific timestamp formats
- Support for multiple character sets
More from syncfusion/aspnetcore-ui-components-skills
syncfusion-aspnetcore-charts
Implements Syncfusion ASP.NET Core Chart (SfChart) for data visualization. Use this when building charts, visualizing time-series or categorical data, or creating dashboards. Covers series configuration (line, bar, pie), axes, tooltips, legends, and customization for ASP.NET Core applications.
11syncfusion-aspnetcore-textbox
Complete guide to implementing the Syncfusion TextBox component in ASP.NET Core applications with tag helpers, validation, floating labels, and adornments for building accessible input forms.
11syncfusion-aspnetcore-list-box
Implement and configure Syncfusion ASP.NET Core ListBox component with selection controls. Use this when building selection interfaces with single/multiple modes, data binding, or advanced features. Covers ListBox implementation, selection state management, appearance customization, and user interaction handling.
10syncfusion-aspnetcore-common
**CONFIGURATION GUIDE** — Assist with Syncfusion ASP.NET Core EJ2 components setup, localization, and version compatibility. Use when: installing Syncfusion packages, configuring globalization/localization, selecting compatible versions.
10syncfusion-aspnetcore-rich-text-editor
Implements the Syncfusion ASP.NET Core Rich Text Editor (ejs-richtexteditor tag helper) supporting HTML (WYSIWYG) and Markdown editing modes. Set editorMode='Markdown' for Markdown; default is HTML. Use this skill for toolbar configuration, image upload, table editing, inline or iframe mode, AI assistant integration, mentions, and form validation with rich text in ASP.NET Core projects.
10syncfusion-aspnetcore-theme
**THEMING & APPEARANCE GUIDE** — Assist with Syncfusion ASP.NET Core EJ2 component theming, customization, size modes, and dynamic theme switching. Use when: applying themes (Bootstrap, Material, Tailwind, Fluent, etc.), customizing theme variables, implementing theme switchers, enabling touch mode, or customizing icons and appearance.
10