mcpField
S
syncfusion-aspnetcore-datepicker

syncfusion-aspnetcore-datepicker

github.com/syncfusion设计与 UI051 次安装2 周前更新
代码仓库

关于 syncfusion-aspnetcore-datepicker

该技能指导开发者使用 Syncfusion Tag Helper 在 ASP.NET Core 中实现日期选择器,支持日期范围、格式校验、本地化和事件处理。

主要功能

  1. 01弹出日历与键盘导航
  2. 02设置最小和最大日期
  3. 03自定义显示及输入格式
  4. 04严格模式日期校验
  5. 05文化区域与 RTL 支持
  6. 06事件处理和模型绑定

适用场景

  1. 01构建预约或日程表单
  2. 02限制生日等日期输入范围
  3. 03按区域格式显示和解析日期

安装

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

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

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

包含的文件

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

references/
date-formats-and-parsing.md
date-ranges-and-validation.md
events-and-interactions.md
getting-started.md
globalization-localization.md
styling-and-appearance.md

详细介绍

在 ASP.NET Core 中实现 DatePicker

DatePicker 是一种图形用户界面控件,允许用户选择或输入日期值,并提供日期范围限制、自定义格式、弹出日历、键盘导航、事件处理和全球化支持等高级功能。本技能将指导你在 ASP.NET Core 应用程序中使用 Syncfusion 的 Tag Helper 语法实现 DatePicker。

何时使用此技能

在以下情况下使用此技能:

  • 创建带有日历弹出选择功能的日期输入字段
  • 实现日期范围限制(最小/最大日期)
  • 支持自定义日期格式模式(yyyy-MM-dd、dd/MM/yyyy 等)
  • 接受用户以多种日期格式输入
  • 使用严格模式强制验证日期
  • 响应日期选择和交互事件
  • 以特定区域性格式显示日期
  • 支持从右到左的语言(阿拉伯语、希伯来语、波斯语)
  • 设置日期选择器的样式并进行自定义
  • 将 DatePicker 与 ASP.NET Core 模型绑定集成
  • 构建预订系统、预约安排器或注册表单
  • 实现符合 WCAG 2.2 Level AA 标准的无障碍表单

主要功能

功能用例
弹出日历通过月份/年份导航进行可视化日期选择
日期范围设置最小/最大限制并自动验证
自定义格式将日期显示为 yyyy-MM-dd、dd/MM/yyyy、MM/dd/yyyy 等格式
输入格式接受多种输入模式,让用户灵活填写
严格模式强制严格的日期验证并限制无效输入
键盘导航使用方向键、Enter、Tab、Escape 提升无障碍体验
事件Created、Change、Blur、Focus、Open、Close 事件处理程序
模型绑定与 ASP.NET Core DateTime 属性进行双向绑定
全球化支持 150 多种特定区域性的日期格式
本地化翻译弹出窗口中的占位符和按钮文本
RTL 支持为阿拉伯语、希伯来语、波斯语提供从右到左的文本方向
样式通过主题集成(Fluent、Bootstrap)自定义 CSS
只读状态仅显示模式,不支持用户交互
禁用状态禁用特定日期或整个日期选择器

文档导航指南

入门

📄 阅读: references/getting-started.md

  • 先决条件和系统要求
  • 安装 Syncfusion.EJ2.AspNet.Core NuGet 包
  • 在 _ViewImports.cshtml 中添加 Tag Helpers
  • 通过 CDN 添加样式表和脚本资源
  • 注册脚本管理器
  • 使用 Tag Helper 创建第一个 DatePicker
  • 绑定到 ASP.NET Core DateTime 模型
  • Tag Helper 属性和语法参考
日期格式和解析

📄 阅读: references/date-formats-and-parsing.md

  • 标准日期格式模式(yyyy-MM-dd、dd/MM/yyyy)
  • 自定义日期格式字符串的构建
  • 用于灵活输入的输入格式接受模式
  • 特定区域性的日期解析和显示
  • 使用实际场景模式进行格式转换的示例
  • 边缘情况:月份边界、闰年、DST
  • 日期验证和错误处理
日期范围和验证

📄 阅读: references/date-ranges-and-validation.md

  • 设置最小和最大日期限制
  • 使用自动边界检查进行范围验证
  • 禁用特定日期或日期范围
  • 严格模式强制执行和验证行为
  • 超出范围的日期处理
  • 实际验证模式(出生日期、预约预订、合同日期)
  • 边缘情况和边界条件
事件与交互

📄 阅读: references/events-and-interactions.md

  • 创建事件初始化与设置
  • 用于处理日期选择的 Change 事件
  • 用于输入状态的 Blur 和 Focus 事件
  • 弹出窗口的 Open 和 Close 事件
  • 选择日期时阻止弹出窗口关闭
  • 事件处理程序参数与数据
  • 自定义交互模式与工作流
全球化与本地化

📄 阅读: references/globalization-localization.md

  • 特定区域性的日期格式(en-US、de-DE、fr-FR 等)
  • CLDR 数据与区域设置配置
  • RTL(从右到左)语言支持
  • 多语言日期显示
  • 区域日历注意事项
  • 时区处理与日期转换
  • 在应用程序中动态切换区域设置
样式与外观

📄 阅读: references/styling-and-appearance.md

  • CSS 类自定义与样式模式
  • 主题集成(Fluent、Bootstrap、Material、Tailwind)
  • 只读和禁用状态样式
  • 占位符和标签自定义
  • 响应式弹出窗口定位
  • 用于验证状态的自定义 CSS 类
  • 无障碍与焦点指示器样式

快速入门示例

ASP.NET Core Tag Helper 语法:

// In your Razor Page or Controller View
public class BookingModel : PageModel
{
    [BindProperty]
    public DateTime AppointmentDate { get; set; }
    
    [BindProperty]
    public DateTime StartDate { get; set; }
    
    public void OnPost()
    {
        // Handle form submission with AppointmentDate
    }
}

<form method="post">
    
    <label>Select Appointment Date:</label>
    <ejs-datepicker asp-for="AppointmentDate" 
                     placeholder="Choose a date">
    </ejs-datepicker>
    
    
    <label>Select Travel Start Date:</label>
    <ejs-datepicker id="startDatePicker"
                     asp-for="StartDate" 
                     min="@DateTime.Today" 
                     max="@DateTime.Today.AddDays(30)"
                     format="yyyy-MM-dd"
                     placeholder="mm/dd/yyyy">
    </ejs-datepicker>
    
    <button type="submit" class="e-btn">Book Appointment</button>
</form>

常见模式

模式 1:日期范围选择(出生日期)
<ejs-datepicker id="birthDatePicker"
                 value="@DateTime.Today.AddYears(-25)"
                 min="@DateTime.Today.AddYears(-100)"
                 max="@DateTime.Today"
                 format="MM/dd/yyyy"
                 placeholder="MM/DD/YYYY">
</ejs-datepicker>
模式 2:接受多种格式的输入
<ejs-datepicker id="flexibleDatePicker"
                 format="yyyy-MM-dd"
                 input-formats="@new[] { 'yyyy-MM-dd', 'dd/MM/yyyy', 'MM-dd-yyyy' }"
                 placeholder="Enter date (yyyy-MM-dd or dd/MM/yyyy)">
</ejs-datepicker>
模式 3:事件驱动验证
<ejs-datepicker id="validatedDatePicker"
                 change="onDateChange"
                 placeholder="Select date">
</ejs-datepicker>

<script>
function onDateChange(args) {
    if (args.value) {
        console.log('Selected Date:', args.value);
    }
}
</script>
模式 4:只读显示模式
<ejs-datepicker id="readonlyPicker"
                 value="@ViewData["SubmissionDate"]"
                 readonly="true"
                 format="MMMM dd, yyyy">
</ejs-datepicker>

关键属性与特性

属性类型描述
asp-forstring绑定到 ASP.NET Core 模型属性(DateTime)
valueDateTime初始选定日期
minDateTime可选日期的最小值
maxDateTime可选日期的最大值
formatstring日期显示格式模式
input-formatsstring[]接受的输入格式模式
placeholderstring输入占位文本
readonlybool禁止编辑日期
enabledbool启用/禁用组件
strict-modebool强制执行严格的日期验证
start-viewstring初始日历视图(Month、Year、Decade)

平台特定说明

ASP.NET Core Tag Helper 语法
  • 使用 asp-for 属性直接绑定模型(替代 id 和 name)
  • 带连字符的属性映射到 C# 属性(例如,input-formats → InputFormats)
  • 自闭合标签:<ejs-datepicker />,也可带内容
  • 使用元素 ID 通过 JavaScript 访问
Tag Helper 与 HTML Helper
  • Tag Helpers(较新,推荐):类似 Razor 的语法,支持 IntelliSense
  • HTML Helpers(旧版):手动配置 JavaScript
  • 本技能聚焦于 ASP.NET Core 的最佳实践 Tag Helpers
模型绑定
  • 使用 asp-for 实现自动双向绑定
  • 可选日期的 DateTime 属性必须为可空的 DateTime?
  • 服务器端验证可补充 DatePicker 的客户端验证
事件处理
  • 使用属性语法绑定事件:change="functionName"
  • 处理程序函数接收 DatePickerEventArgs 参数
  • 同时支持客户端(JavaScript)和服务器端验证

后续步骤

  1. 从这里开始: 入门 - 设置你的第一个 DatePicker
  2. 配置日期: 日期格式和解析 - 自定义格式
  3. 添加验证: 日期范围和验证 - 最小值/最大值约束
  4. 处理交互: 事件和交互 - 响应用户操作
  5. 迈向全球化: 全球化和本地化 - 多语言支持
  6. 润色 UI: 样式和外观 - 自定义主题

最后更新: 2026 年 3 月
框架版本: Syncfusion EJ2 24.1.48+
许可证: 参见 license 中的 LICENSE

评论

支持 Markdown