Asp.net mvc 模型绑定操作中的单个参数

Asp.net mvc 模型绑定操作中的单个参数,asp.net-mvc,model-binding,Asp.net Mvc,Model Binding,由于某些原因,我想使用MVC ModelBinder将请求绑定到一个只有在运行时才知道名称和类型的对象 e、 g 我想我需要掌握ModelBindingContext,或者创建一个新的、有效的上下文,但是我该怎么做呢 编辑:如果我不够清楚,我很抱歉-我已经知道TryUpdateModel,但据我所知,它将所有发布的值绑定到您传入的模型对象的属性。我只想为单个发布的参数获取相应的对象。使用控制器方法TryUpdateModel 它将根据参数类型选择合适的绑定器并为您执行模型绑定。使用控制器方法T

由于某些原因,我想使用MVC ModelBinder将请求绑定到一个只有在运行时才知道名称和类型的对象

e、 g

我想我需要掌握ModelBindingContext,或者创建一个新的、有效的上下文,但是我该怎么做呢


编辑:如果我不够清楚,我很抱歉-我已经知道TryUpdateModel,但据我所知,它将所有发布的值绑定到您传入的模型对象的属性。我只想为单个发布的参数获取相应的对象。

使用控制器方法TryUpdateModel


它将根据参数类型选择合适的绑定器并为您执行模型绑定。

使用控制器方法TryUpdateModel


它将根据参数类型选择合适的绑定器并为您执行模型绑定。

您可以按照鲁昂的建议使用TryUpdateModel,还可以实现一个自定义模型绑定器,该绑定器可以绑定正确的类型。这种方法的优点是让您能够处理接口或抽象模型,并使绑定代码不参与操作。它有点整洁,但我只建议在代码的其他部分重用它。

您可以按照鲁昂的建议使用TryUpdateModel,也可以实现一个自定义模型绑定器,该绑定器可以绑定正确的类型。这种方法的优点是让您能够处理接口或抽象模型,并使绑定代码不参与操作。这有点整洁,但我只建议在代码的其他部分重用它

public ActionResult BindSomething()
{
    Type type  = typeof(Some.Type);
    string parameterName = "someParameter"; //this corresponds to a particular form input name

    var binder = Binders.GetBinder(desiredType, true);
    var x = binder.BindModel(this.ControllerContext, ???) //??? should be a ModelBindingContext. Where can I get this from 
    return View(x);
}