簡體   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