【发布时间】:2016-03-23 17:39:41
【问题描述】:
我写了一个模型绑定器的覆盖。
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;
}
我还有一个 javascript 服务(在 Angular 中),它向我的一个控制器发出 AJAX 请求。
AJAX 请求尝试发布整数集合。我尝试单步执行模型活页夹,似乎value 始终为空。通过某种魔法,base.BindModel() 仍然能够将我的集合绑定到正确的 C# 对象。
这个问题是我不能使用我的自定义活页夹,因为else 块永远不会被调用。除了使用ValueProvider之外,我还有其他方法可以获得价值吗?
我也相信在这个自定义活页夹正常工作之前(根据记忆可能是错误的)。我最近从 4.5 更新到 5.2.something。是否有任何更新可以改变这种行为?
【问题讨论】:
标签: c# ajax asp.net-mvc