SORU
14 Mayıs 2011, CUMARTESİ


Nasıl belirli bir formatta bir DateTime işlemek için 3 MVC ASP.NET ?

Eğer model benim sınıfta kalırsam 6* *türünde bir özellik nasıl ToLongDateString() döndüren biçiminde örneğin belirli bir biçimde işlemek olabilir miyim?

Bu denedim...

@Html.DisplayFor(modelItem => item.MyDateTime.ToLongDateString())

...ifade bir özellik veya alan göstermelidir, çünkü bir özel durum atar. Ve bu...

@{var val = item.MyDateTime.ToLongDateString();
  Html.DisplayFor(modelItem => val);
}

...istisna değil, ama işlenen çıkış boştur val beklenen değer içerir, hata ayıklayıcı görebiliyordu rağmen.

Önceden ipuçları için teşekkürler!

Edit

ToLongDateString sadece bir örnektir. Ben aslında ToLongDateString yerine kullanmak istiyorum ne DateTime DateTime? özel uzantısı bir yöntemdir

public static string FormatDateTimeHideMidNight(this DateTime dateTime)
{
    if (dateTime.TimeOfDay == TimeSpan.Zero)
        return dateTime.ToString("d");
    else
        return dateTime.ToString("g");
}

public static string FormatDateTimeHideMidNight(this DateTime? dateTime)
{
    if (dateTime.HasValue)
        return dateTime.Value.FormatDateTimeHideMidNight();
    else
        return "";
}

Yani, veremem ViewModel özellikleri DisplayFormat nitelik ve DataFormatString parametresini kullanın bence.

CEVAP
14 Mayıs 2011, CUMARTESİ


Eğer tüm yapmak istediğiniz belirli bir biçimi ile yeniden tarih ise, sadece çağrı:

@String.Format(myFormat, Model.MyDateTime)

@Html.DisplayFor(...) kullanarak bir şablon belirtme sürece ekstra sadece iş veya şablonlar üzerine kurulu bir şey kullanmak için IEnumerable<T> bir yineleme gibi gerekir. Şablon oluşturma, basit ve esneklik de sağlayabilir. Görüşlerinizi klasöründe geçerli denetleyicisi (veya paylaşılan klasör görünümleri) DisplayTemplates adlı oluşturun. Bu klasör içinde, şablonu oluşturmak istediğiniz modeli türü ile kısmi bir görünüm ekleyin. Bu durumda /Views/Shared/DisplayTemplates ekledim ve kısmi bir görünüm ShortDateTime.cshtml adlı ekledi.

@model System.DateTime

@Model.ToShortDateString()

Ve şimdi şu satırı ile şablon arayabilirsiniz:

@Html.DisplayFor(m => m.MyDateTime, "ShortDateTime")

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Chanre Joubert

    Chanre Joube

    27 Temmuz 2012
  • Madeon

    Madeon

    31 Ocak 2010
  • metal571

    metal571

    30 Mayıs 2006