用于ASP.NET MVC的日历控件

在ASP.NET MVC里应该没有人愿意用<asp:Calendar ...>这个控件吧?它必须要求服务器端的一个form,但这已经违背了MVC的原则,所以我们不能用它啦。
或许你可以用javascript的日历来解决你的问题,那也很不错。
我这里向你推荐一个日历“控件”,它是扩展到HtmlHelper的,所以你可以在页面里使用<%= Html.Calendar() %>就可以得到一个标准化的日历了。

要下载源码和例子请到:http://shinyzhu.com/blog/entry/aspnet-mvc-calendar(这个地址暂时关闭了,请到下面的链接)
另外别忘了支持这个项目:http://www.codeplex.com/mvcapps

首先说说这个日历的作用,简单一点地说呢,就是可以显示指定月份的日历,最简单的方式就是 Html.Calendar ,它生成一个当前月份的日历。要指定日期也需要指定一个名字,因为同一个id不能在同一个页面出现多次,所以我这么要求了。代码是:
<%= Html.Calendar("otherName", selectedDate) %>
就可以显示指定日期那个月份了。

 

 

其实这个的原理是遍历月份的每一天,然后输出HTML字符串,很简单吧?


我的一个需求是要把当前日志按日期归档,有日志的那天我需要在日历上有一个链接,链接到这一天的归档。

这个就是我扩展它的原因了。

具体应用请看代码:

public static string Calendar(this HtmlHelper helper, string name, DateTime selectedDate, IEnumerable<DateTime> rawDates, string controllerName, string actionName);

这个是方法原型。

像这么用:



得到的效果是:



好了。需要注意的地方就是,目前这个日历链接中,controller和action是参数指定的,values目前只支持date=year-month-daydate=year-month两种格式。你可以在Route配置里配置一个 "blog/archive/{date}“ 然后就可以生成像我的网站那种链接了。很方便吧?

欢迎砸鸡蛋哦!谢谢啦。图片已更新。
posted @   亮小猪  阅读(4329)  评论(1编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
点击右上角即可分享
微信分享提示