В чем разница между SetProperty и BindProperty?

я есть такая модель

    public string Name { get; set; }

    public IEnumerable<int> ProjectMembersId { get; set; }

Имя свойства должно быть связано с использованием стандартного кода привязки.

Но свойство ProjectMembersId должно быть связано с использованием моего пользовательского кода.

Поэтому я извлек класс из DefaultModelBinder и переопределил метод SetProperty.

protected override void SetProperty(ControllerContext controllerContext, ModelBindingContext bindingContext, System.ComponentModel.PropertyDescriptor propertyDescriptor, object value)
{
    if (propertyDescriptor.Name == "ProjectMembersId")
    {
        var list = new List<int>(5);

        var form = controllerContext.HttpContext.Request.Form;

        var names = form.AllKeys.Where(x => x.StartsWith("dhxGridObj"));

        foreach (var name in names)
        {
            int i;

            if (int.TryParse(form.Get(name), out i))
            {
                list.Add(i);
            }
        }

        value = list;
    }

    base.SetProperty(controllerContext, bindingContext, propertyDescriptor, value);
}

Однако проблема в том, что метод SetProperty не вызывается, потому что поставщик значений не содержит элемент с именем ProjectMembersId.

Возможно я переопределяю неправильную часть defaultModelBinder. Так что было бы лучшим путем?

Ответы на вопрос(1)

Ваш ответ на вопрос