asp.net - 模型绑定未执行
问题描述
我正在尝试查看传入请求的内容,因此我可以编写一个适当的对象来绑定到 JSON。
IIUC,我的通用提供程序和绑定代码应该在每个 POST 上执行,无论传入类型如何。
我看不到我错过了什么。我的 Binder 和 Provider 代码不执行。
我在这里定义了提供者和绑定器。
public class GenericModelBinderProvider: IModelBinderProvider
{
public IModelBinder GetBinder(Type modelType)
{
return new GenericModelBinder(); // breakpoint
}
}
public class GenericModelBinder: IModelBinder
{
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
try // breakpoint
{
//1.
var model = bindingContext.ModelType;
//2.
var data = new XmlSerializer(model);
//3.
var receivedStream = controllerContext.HttpContext.Request.InputStream;
//4.
return data.Deserialize(receivedStream);
}
catch (Exception ex)
{
bindingContext.ModelState.AddModelError("Error", "Received Model cannot be serialized");
return null;
}
}
}
我在启动时注册它。这个断点确实被击中。
ModelBinderProviders.BinderProviders.Insert(0, new GenericModelBinderProvider());
或者
ModelBinders.Binders.Add(typeof(object), new GenericModelBinder());
解决方案
推荐阅读
- c# - 从 .xml 文件 (C#) 中绘制“像素路径”
- angular6 - 在 ag-grid 中编辑后行移到顶部
- plot - 无法在 GRC 中绘制 FFT 结果,给出“itemsize mismatch”错误
- python - 想要找到与熊猫数据框相对应的元素的列表索引(np.where with .index())
- ethereum - 调用合约函数时 BigNumber() 不是基数为 16 的数字错误
- amazon-web-services - 环境变量是在部署 Lambda 函数代码之前还是之后设置的?
- reactjs - 通用按钮可重用性无法在 ReactJS 中实现
- java - 如何从环境变量将动态主题名称传递给@KafkaListener(topics)
- ios - iOS在块内崩溃
- hive - 小数点后的 Hive 数字