c# - 将数据绑定(bind)到 Asp.net MVC 中的现有对象

标签 c# asp.net-mvc model-view-controller modelbinders

在 ASP.Net MVC 模型绑定(bind)器中,可以创建绑定(bind)类型的对象,然后更新其属性。

例如

public override object BindModel(ControllerContext controllerContext,
    ModelBindingContext bindingContext)
{
    ParentType boundModel = null;
    if (bindingContext.ModelType == typeof(ParentType))
    {
        var myFactory = new MyFactory();
        var someValue = bindingContext.ValueProvider.GetValue
            ("someFieldId").AttemptedValue;
        ChildType child = myFactory.Create(someValue);
        BindModel(child);
        boundModel = child;
    }
    return boundModel;
}

在这段代码中,我想知道是否有类似于 BindModel(child) 调用的东西,有点像来自 Controller 的 TryModelUpdate()?

最佳答案

我认为解决您的问题的更好方法是派生自 DefaultModelBinder(我认为您可能是),然后覆盖 CreateModel 方法而不是 BindModel 方法。

通过从中返回您的 Child 对象,您应该沿着您正在寻找的路径前进。

关于c# - 将数据绑定(bind)到 Asp.net MVC 中的现有对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2298320/

相关文章:

asp.net - 在 dotnet mvc 5 中,如何将服务注入(inject) View ?

css - 在 razor 和 mvc 中将 css 应用于 div

C#:如何只返回字符串中的第一组大写字母单词?

c# - View 已添加到 UIViewControllerWrapperView,但显示不正确

c# - 将字符串转换为整数

c# - 将 UserId 分配给外键 = null

ruby-on-rails - 清洁 Controller : preparing data for views

javascript - 打开相对URL以两个 Controller 为前缀

php - 如何在 php-mysql 中记录页面的所有更新

c# - 使用反射的实际方法签名