MVC中的波斯语日历,Asp.net

Persian Calender in MVC , Asp.net

本文关键字:Asp net 日历 波斯语 MVC      更新时间:2023-09-26

我在MVC中使用一个DateTime变量,我想为

显示波斯语日历
@Html.EditorFor(x=> x.ProductionDate)

我该怎么做?

我找到了解决方案

1.到www.amib.ir/weblog/?page_id=316下载最新版本的"AMIB_jsPersianCal"



2.添加"js-persia -cal.min.js"answers"js-persia -cal.css"answers"pcal.png"到您的项目
你可以改变css指定的PNG文件的Url

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" });

注意:我使用字符串变量的Birthdate


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

web.config:

 <system.web>
     <globalization culture="fa-IR" uiCulture="fa-IR" 
     requestEncoding="utf-8" 
     responseEncoding="utf-8" />
 </system.web>