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

  • gsmaestro

    gsmaestro

    17 AĞUSTOS 2006
  • tatermoog

    tatermoog

    2 AĞUSTOS 2006
  • Crossover

    Crossover

    18 HAZİRAN 2007