7

MVC で DateTime 変数を使用しており、ペルシャのカレンダーを表示したい

@Html.EditorFor(x=> x.ProductionDate)

どうすればいいですか?

4

4 に答える 4

9

解決策を見つけました

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>
于 2013-04-28T05:58:48.727 に答える
4

このテンプレート (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をご覧ください。

于 2013-04-27T07:48:40.990 に答える