ASP.NET MVC Custom MetadataProvider - PullRequest
2 голосов
/ 21 мая 2010

Я создаю собственный MetadataProvider и хотел бы получить доступ к значению модели Actall в методе CreateMetadata

public class IcpMetadataProvider : AssociatedMetadataProvider
{

    protected override ModelMetadata CreateMetadata(IEnumerable<Attribute> attributes, Type containerType, Func<object> modelAccessor, Type modelType, string propertyName)
    {

        var metadata = new ModelMetadata(this, containerType, modelAccessor, modelType, propertyName);

        //Is null when the model is of reference type
        var model = metadata.Model;


        return metadata;
    }
}

Если текущее значение модели имеет тип string, значение модели можно найти в metadata.Model. Но когда модель имеет ссылочный тип, значение равно нулю.

Или, может быть, есть какой-нибудь способ передать пользовательские данные этому методу?

1 Ответ

1 голос
/ 17 февраля 2011

Цитируя Брэда Уилсона, вам нужно «вызвать base.CreateMetadata, чтобы вы могли получить ModelMetadata, заполненный значениями из DataAnnotations, а затем просто дополнить его значениями из ваших собственных атрибутов».

Ссылка: http://bradwilson.typepad.com/blog/2010/01/why-you-dont-need-modelmetadataattributes.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...