繁体   English   中英

ASP.NET MVC - 表单和模型绑定器中的多个模型

[英]ASP.NET MVC - Multiple models in a form and model binders

我有一个表格需要填充2个模型。 通常我在表单post post上使用ModelBinderAttribute,即

    [Authorize]
    [AcceptVerbs("POST")]
    public ActionResult Add([GigBinderAttribute]Gig gig, FormCollection formCollection)
    {
       ///Do stuff
    }

在我的表单中,字段的名称与模型属性相同...

但是在这种情况下,我有2个不同的模型需要填充。

我该怎么做呢? 有任何想法吗? 可能吗?

实际上......最好的方法是这样做:

public ActionResult Add([GigBinderAttribute]Gig gig, [FileModelBinderAttribute]File file) {

}

您可以使用多个属性!

在这种情况下,我倾向于使用单一模型类型来包含所涉及的各种模型:

class AddModel
{
     public Gig GigModel {get; set;}
     public OtherType OtherModel {get; set;}
}

......并绑定它。

可以使用UpdateModel或TryUpdateModel方法执行此操作。 您可以传递模型,要绑定的模型,要绑定到该模型的项的前缀和表单。 例如,如果您的Item模型具有“Item.Value”的表单变量,那么您的更新模型方法将是:

UpdateMode(modelObject, stringPrefix, formCollection);

如果您正在使用实体框架,那么值得指出的是UpdateModel方法在某些情况下并不总是有效。 尽管如此,它确实对POCO有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM