(basitlik için elimden):ASP.NET MVC varsayılan bağlayıcı: çok uzun ints, boş doğrulama hata mesajı ben şu modeli sınıf var
public class Info
{
public int IntData { get; set; }
}
İşte bu modeli kullanan benim Jilet biçimi şöyledir:
@model Info
@Html.ValidationSummary()
@using (Html.BeginForm())
{
@Html.TextBoxFor(x => x.IntData)
<input type="submit" />
}
Metin kutusuna sayısal olmayan bir veri girersem, doğru bir doğrulama iletisi alırım, örneğin: "Değer 'qqqqq', 'IntData' alanı için geçerli değil".
Fakat çok uzun bir rakam dizisi girersem (345234775637544 gibi), bir EMPTY doğrulama özeti alırım. Benim denetleyicisi kodunda
, ben ModelState.IsValid
o beklendiği gibi false
olduğunu görmek ve ModelState["IntData"].Errors[0]
aşağıdaki gibidir: Gördüğünüz gibi, doğrulama normalde çalışır
{System.Web.Mvc.ModelError}
ErrorMessage: ""
Exception: {"The parameter conversion from type 'System.String' to type 'System.Int32' failed. See the inner exception for more information."}
(exception itself) [System.InvalidOperationException]: {"The parameter conversion from type 'System.String' to type 'System.Int32' failed. See the inner exception for more information."}
InnerException: {"345234775637544 is not a valid value for Int32."}
ancak bir hata iletisi vermezse Kullanıcı.
Varsayılan model bağlama aracının davranışını değiştirebilir miyim, bu durumda uygun bir hata mesajı gösterebilir mi? Yoksa özel bir ciltleyici yazmam gerekecek mi?
Teşekkür ederim, varsayılan bağlayıcıyı ayarlayamayacaksam bu çözümü seçeceğim. – Zruty
'[Display (Name = ...)]' özniteliğine göre yerelleştirilmiş alan adı istiyorsanız 'bindingContext.ModelName'ı' bindingContext.ModelMetadata.DisplayName' olarak değiştirmeyi öneririm. – Gh61