yalnızca karakterleri (hiçbir numara) izin vermek için ASP.NET MVC 2'nin DataAnnotations kullanmak mümkün mü, hatta izin dizeleri içeren bir beyaz liste sağlar? Örnek?DataAnnotations - izin sadece verilen dizeleri
12
Numaraları Disallow veya
A
cevap
27
kullanın RegularExpressionAttribute.
[RegularExpression("^[a-zA-Z ]*$")]
gibi
şey a-z, üst ve alt kasa ve boşluklar eşleşecektir.
Beyaz liste sadece "beyaz" ve yukarıda bir dize izin vermelidir böylece Ge olmayan sayısal karakterler temsil
[RegularExpression("^\D*$")]
\ "liste" izin vermelidir
[RegularExpression("white|list")]
gibi bir şey olur 0-9 arası bir şey.
Düzenli ifadeler zor ama bazı yararlı test araçları gibi çevrimiçi vardır: http://gskinner.com/RegExr/
3
Evet. Bir düzenli ifade daha iyi performansa sahiptir kendi doğrulayıcı yazabilirsiniz Düzenli ifade http://www.regexlib.com/CheatSheet.aspx
1
üzerinde "[REGULAREXPRESSION]"
Bu büyük bir siteyi kullanın.
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
namespace Utils
{
/// <summary>
/// Define an attribute that validate a property againts a white list
/// Note that currently it only supports int type
/// </summary>
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, AllowMultiple = false)]
sealed public class WhiteListAttribute : ValidationAttribute
{
/// <summary>
/// The White List
/// </summary>
public IEnumerable<int> WhiteList
{
get;
}
/// <summary>
/// The only constructor
/// </summary>
/// <param name="whiteList"></param>
public WhiteListAttribute(params int[] whiteList)
{
WhiteList = new List<int>(whiteList);
}
/// <summary>
/// Validation occurs here
/// </summary>
/// <param name="value">Value to be validate</param>
/// <returns></returns>
public override bool IsValid(object value)
{
return WhiteList.Contains((int)value);
}
/// <summary>
/// Get the proper error message
/// </summary>
/// <param name="name">Name of the property that has error</param>
/// <returns></returns>
public override string FormatErrorMessage(string name)
{
return $"{name} must have one of these values: {String.Join(",", WhiteList)}";
}
}
}
Numune Kullanımı:
[WhiteList(2, 4, 5, 6)]
public int Number { get; set; }
İşte
ben int özellikleri için bir beyaz liste doğrulayıcı yazdı
İlgili konular
- 1. seçenekleri verilen dizeleri
- 2. İzin verilen HTML etiketleri Javadoc'ta
- 3. dizgede izin verilen eşitlik testi
- 4. , izin sadece pozitif tamsayılar
- 5. kullanma DataAnnotations 4,0
- 6. DataAnnotations [Telefon] Öznitelik
- 7. Uygulama İzin günlüğü izin verilen maksimum sayıyı aşan
- 8. TCP için İzin Verilen Bağlantı Noktası Aralığı
- 9. Python işlev adlarında izin verilen karakterler
- 10. mongoid benzersiz dizin izin verilen değerler
- 11. Yinelenen izin verilen öznitelikler nasıl oluşturulur
- 12. HTTP URL - parametre adlarındaki izin verilen karakterler
- 13. UWSGI'de izin verilen GET parametre karakter sayısını nasıl yapılandırabilirim?
- 14. ASP.NET MVC 2 DataAnnotations StringLength
- 15. 1 İzin Verilen Bağlantı ve PHP ile HTTP Canlı Akışı
- 16. EC2'de Django için İzin Verilen Ana Bilgisayar Ayarı
- 17. Dizeleri
- 18. Anahtar başına sadece 1 değere izin ver
- 19. chmod: yinelemeli sadece ben fark zaten izin
- 20. UserInteraction altyazı için izin ver sadece
- 21. Kullanıcıların sadece belirli etiketleri girmesine izin veriliyor
- 22. Sadece karakterler veya boşluk izin veren düzenli ifade
- 23. DataAnnotations nasıl kullanılır ErrorMessageResourceName özel Kaynak Çözümüyle
- 24. DataAnnotations: Tüm nesne grafiğini yinelemeli olarak doğrular
- 25. DataAnnotations StringLength Attribute MVC - maksimum değeri olmadan
- 26. PHP İzin verilen maksimum POST verisi nasıl bulunur?
- 27. XSLT uzantısı nesne yönteminden izin verilen .NET dönüşü türleri nelerdir?
- 28. SortedCollection'da İzin Verilen Kopyalara Gerek Var (C#, 2.0)
- 29. Bitnami-Moodle max izin verilen paket boyutunu artırın
- 30. Bu yöntem çağrısı yalnızca sınıf yöntemleri hatası için izin verilen