Belirli bir viewModel özelliği için istemci tarafı ve sunucu tarafı doğrulaması geliştiriyorum. .cshtml
dosyasındaValidationMessageFormModelError (anahtar, mesaj) ile birlikte. Anahtar nedir?
bu koyun: iş doğrulama için Kontrolörü olarak
@Html.DropDownListFor(model => model.EntityType.ParentId, Model.ParentTypeList, "")
@Html.ValidationMessageFor(model => model.EntityType.ParentId)
catch (BusinessException e)
{
ModelState.AddModelError("EntityType.ParentId", Messages.CircularReference);
}
beklendiği gibi yukarıdaki eserler: Bir istisna yakalanması halinde, mesajı yanında görünür açılır liste. Bununla birlikte, bu yolun çok zarif olmadığını görüyorum. cshtml
'da, doğrulama hakkında gerekli tüm bilgileri oluşturmak için bir yöntem kullanıyorum. Kontrolörde, kesin anahtar dizisini bilmeli ve kullanmalıyım.
Bunu yapmanın daha iyi bir yolu yok mu?
Onun yerine bir dize anahtar için bir lambda ifadesi alacak bir uzantısı yöntem yazabilirsiniz
Bu bağlantı bazı ek sağlar içgörü ve anahtarı doğrudan bir dize olarak değil, bir ifade olarak ifade etmenin bir yolu: http://stackoverflow.com/questions/11090445/how-to-get-a-modelstate-key-of-an-item-in- bir liste heres başka bir kaynak İfade için http://stackoverflow.com/questions/8793799/get-reference-to-object-from-c-sharp-expression – bUKaneer