Я написал переопределение модели Binder.MVC 5 Model Binder Override
public override object BindModel(Controller context, ModelBindingContext bindingContext)
{
var value = bindingContext.ValueProvider.GetValue(bindingContext.ModelName);
object returnVal = null;
if (value == null)
returnVal = base.BindModel(controllerContext, bindingContext);
else
{
/* custom logic here that never seems to get called.
returnVal = something();
*/
}
return returnVal;
}
У меня также есть яваскрипт служба (в угловом), что делает запрос AJAX для одного из моих контроллеров.
Запрос AJAX пытается опубликовать коллекцию ints. Я пробовал переходить через связующее модель, и кажется, что value
всегда имеет значение null. И каким-то волшебством base.BindModel()
все еще может привязать мою коллекцию к правильному объекту C#.
Проблема заключается в том, что я не могу использовать свое настраиваемое связующее, поскольку блок else
никогда не вызывается. Есть ли другой способ получить значение, кроме использования ValueProvider
?
Я также считаю, что до того, как это обычное переплетное устройство работало правильно (из памяти, которая может быть неправильной). Я недавно обновлялся с 4.5 до 5.2.something. Есть ли что-то обновленное, которое могло бы изменить это поведение?