MVC で DateTime 変数を使用しており、ペルシャのカレンダーを表示したい
@Html.EditorFor(x=> x.ProductionDate)
どうすればいいですか?
MVC で DateTime 変数を使用しており、ペルシャのカレンダーを表示したい
@Html.EditorFor(x=> x.ProductionDate)
どうすればいいですか?
解決策を見つけました
1.www.amib.ir/weblog/?page_id=316 にアクセスし、「AMIB_jsPersianCal」の最新バージョンをダウンロードします
2.「js-persian-cal.min.js」と「js-persian-cal」を追加します.css" および "pcal.png" をプロジェクトに追加する
と、指定した PNG ファイルの URL の css を変更できます
。 3. css および js ファイルを cshtml ファイルに追加します。
<link href="@Url.Content("~/Content/js-persian-cal.css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/js-persian-cal.min.js")"></script>
4.日付ファイルを次のように変更します
@Html.TextBoxFor(m => m.Birthdate, new { @id = "pcal1", @class = "pdate" });
注:生年月日には文字列変数を使用します
5.cshtmlファイルの最後にスクリプトを追加します
<script type="text/javascript">
var objCal1 = new AMIB.persianCalendar('pcal1'); </script>
このテンプレート (datetime.cshtml) を試して、DateTime を PerisanDate に自動的に表示/変換します。
@*
Copy this file to:
Views\Shared\DisplayTemplates\datetime.cshtml
*@
@using System.Globalization
@model Nullable<DateTime>
@helper ShamsiDateTime(DateTime info, string separator = "/", bool includeHourMinute = true)
{
int ym = info.Year;
int mm = info.Month;
int dm = info.Day;
var sss = new PersianCalendar();
int ys = sss.GetYear(new DateTime(ym, mm, dm, new GregorianCalendar()));
int ms = sss.GetMonth(new DateTime(ym, mm, dm, new GregorianCalendar()));
int ds = sss.GetDayOfMonth(new DateTime(ym, mm, dm, new GregorianCalendar()));
if (includeHourMinute)
{
@(ys + separator + ms.ToString("00") + separator + ds.ToString("00") + " " + info.Hour + ":" + info.Minute)
}
else
{
@(ys + separator + ms.ToString("00") + separator + ds.ToString("00"))
}
}
@if (@Model.HasValue)
{
@ShamsiDateTime(@Model.Value , separator: "/", includeHourMinute: false)
}
また、ペルシャ語の日時ピッカーを探している場合は、http: //www.dotnettips.info/newsarchive/details/1122をご覧ください。