[英]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.