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

  • Artorius FullPower

    Artorius Ful

    29 Temmuz 2007
  • ModNation Racers H.Q.

    ModNation Ra

    31 Ocak 2010
  • NightShader1

    NightShader1

    25 Temmuz 2006