用於ASP.NET MVC的日曆控制項

來源:互聯網
上載者:User
在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-day或date=year-month兩種格式。你可以在Route配置裡配置一個 "blog/archive/{date}“ 然後就可以產生像我的網站那種連結了。很方便吧?

歡迎砸雞蛋哦!謝謝啦。圖片已更新。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.