2 votes

Obtenir l'instance d'objet de HtmlHelper

L'utilisation du code suivant dans un htmlhelper me donne quelques métadonnées. Il contient même le type de conteneur. Ce que je veux, c'est l'instance du conteneur. Dans l'expression

x => x.FirstName

Je veux atteindre l'instance x.

Y a-t-il un moyen de le faire ?

    public static MvcHtmlString DisplayEditorFor<TModel, TValue>(this HtmlHelper<TModel> html, Expression<Func<TModel, TValue>> expression, string templateName, string htmlFieldName, object additionalViewData)
    {
        var result = ModelMetadata.FromLambdaExpression(expression, html.ViewData);
        ...
    }

Le résultat a le type, et une foule d'autres informations, mais pas l'instance. L'expression elle-même doit avoir cette liaison dans le corps. Comment puis-je l'extraire ?

4voto

Jim Points 930

C'était stupide.

html.Model contains the object instance.

de plus

var value = expression.Compile().Invoke(html.ViewData.Model);

vous donnera la valeur de l'instance du modèle évalué en utilisant le lambda.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X