SORU
11 Kasım 2009, ÇARŞAMBA


ASP.NET MVC: veri girişi sonra dizeleri kesmek için en İyi yol. Özel model binder oluşturmalıyım?

ASP.NET MVC kullanıyorum ve kullanıcının girdiği tüm dize alanları veritabanına eklenen önce kesilmiş olmak istiyorum. Ve birçok veri giriş formları beri, zarif bir şekilde açıkça her kullanıcı string değer verilen kırparak yerine ipleri kesmek için arıyorum. İnsanlar dizeleri süsleme nasıl bilmek istiyorum.

Belki de özel model bir cilt oluşturma ve herhangi bir dize süsleme orada değerler düşündüm...böylece tüm süsleme mantığım bir yerde yer alıyor. Bu iyi bir yaklaşım mı? Herhangi bir kod örnekleri bu ne var?

CEVAP
14 Kasım 2009, CUMARTESİ


  public class TrimModelBinder : DefaultModelBinder
  {
    protected override void SetProperty(ControllerContext controllerContext, 
      ModelBindingContext bindingContext, 
      System.ComponentModel.PropertyDescriptor propertyDescriptor, object value)
    {
      if (propertyDescriptor.PropertyType == typeof(string))
      {
        var stringValue = (string)value;
        if (!string.IsNullOrEmpty(stringValue))
          stringValue = stringValue.Trim();

        value = stringValue;
      }

      base.SetProperty(controllerContext, bindingContext, 
                          propertyDescriptor, value);
    }
  }

Bu kodu nasıl?

ModelBinders.Binders.DefaultBinder = new TrimModelBinder();

Küresel ayarlayın.asax Application_Start olay.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 8lacKy

    8lacKy

    30 Mart 2009
  • Hot For Nutrition

    Hot For Nutr

    26 ŞUBAT 2007
  • natescamp

    natescamp

    30 NİSAN 2009