gpt4 book ai didi

asp.net-mvc - 对 ModelBinder 中的特定数据类型进行自定义绑定(bind)

转载 作者:行者123 更新时间:2023-12-04 07:03:05 24 4
gpt4 key购买 nike

我正在创建自己的自定义 ModelBinder,它继承自 DefaultModelBinder,并手动绑定(bind) XElement 类型的属性。

现在看来我必须重写“BindProperty”方法,如下所示:

    protected override void BindProperty(
ControllerContext controllerContext,
ModelBindingContext bindingContext,
System.ComponentModel.PropertyDescriptor propertyDescriptor)
{
if (propertyDescriptor.PropertyType == typeof(XElement))
{
// code here to take the POST-ed form value and put it in the property as an XElement instance
}
else
base.BindProperty(controllerContext, bindingContext, propertyDescriptor);
}

我应该使用什么代码:

A)从发布的表单值中获取属性值?

B)将此值注入(inject)属性?

我尝试在 DefaultModelBinder 类上运行 Reflector 以查看它是如何做到的,但代码非常困惑。

我需要以前做过这件事的人来引导我完成它。

最佳答案

bindingContext 参数包含一个 ValueProvider 属性,该属性已经填充了请求中的值。这个想法是你从中提取值(value)。

它只是一个值字典,因此您可以使用要绑定(bind)的字段的名称对其进行索引。

了解正在发生的事情的最简单方法是应用您的自定义 ModelBinder,然后在您的代码中设置一个断点并检查您在调试器中获得的数据。

关于asp.net-mvc - 对 ModelBinder 中的特定数据类型进行自定义绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1529312/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com