Sto sviluppando un'applicazione MVC 5. Voglio ottenere il valore nell'attributo [Display (Name = "")] nel mio metodo controller per qualsiasi proprietà di qualsiasi classe.Come ottenere il valore nell'attributo [Visualizza (Nome = "")] nel Controller per qualsiasi proprietà utilizzando EF6
Il mio modello è come:
public partial class ABC
{
[Required]
[Display(Name = "Transaction No")]
public string S1 { get; set; }
}
ho guardato answer to this question, ma è un po 'lunga procedura. Sto cercando qualcosa di disponibile e integrato.
Così, ho provato questo:
MemberInfo property = typeof(ABC).GetProperty(s); // s is a string type which has the property name ... in this case it is S1
var dd = property.CustomAttributes.Select(x => x.NamedArguments.Select(y => y.TypedValue.Value)).OfType<System.ComponentModel.DataAnnotations.DisplayAttribute>();
Ma ho 2 problemi, prima non ricevo il valore vale a dire "Operazione No". E in secondo luogo anche se ho menzionato .OfType <> Ricevo ancora tutti gli attributi, ad esempio [Visualizza (Nome = "")] e [Richiesto].
Ma per fortuna io sono sempre l ' "Operazione No" valore d'
proprietà >> CustomAttribute >> [1] >> >> NamedArguments [0] >> >> TypedValue Valore = "Operazione No "
Dal TypedValue.Value ha il valore richiesto, Così come posso recuperarlo?
GRAZIE .. Ha funzionato per me .. ** typeof (ABC) ** // o il modello per il quale è richiesta la proprietà –
L'ho provato ma il valore non è passato alla proprietà. Ho provato a sostituire s con il valore del mio modello. Ma quando passo il mouse sulla proprietà memberinfo .... la proprietà è nullo. perchè è questo? Non so se è perché il mio valore di modello è enum? come posso risolvere il problema? questa è la mia linea: typeof (MyProject.Dom.Title) .GetProperty (Card.Title.ToString()) – Nurul
@Nurul, Comment non è un posto dove fare domande come "ecco il mio codice, perché non funziona" . per favore postalo come una domanda separata e includi il tuo codice. –