MVC3 C#ViewModel on Postback用于保存

时间:2011-07-25 08:57:17

标签: c# asp.net-mvc-3 postback save viewmodel

我有一个带有viewmodels和collections的特定视图模型。当我单击调用回发的保存按钮时,我无法在viewmodel中获取视图模型和集合。我需要在函数的参数中声明viewmodels和collections才能得到它。有没有办法让viewmodel完成它的viewmodel和集合?

我有这个Customer viewModel

public class CustomerViewModel 
{ 
   public int Id { get; set; } 
   public string Name { get; set; } 
   public PersonInfoViewModel PersonInfoViewModel { get; set; } 
   public ICollection<PurchasesViewModel> PurchasesViewModel { get; set; } 
} 

当我尝试在我的控制器中回发时:

[HttpPost] 
public ActionResult New(FormCollection collection, CustomerViewModel customerViewModel, PersonInfoViewModel personInfoViewModel, ICollection<PurchasesViewModel> purchasesViewModel) 
{ 
   customerViewModel.PersonInfoViewModel = personInfoViewModel; 
   ... 
}

我忘了提到ViewModels和Collections是使用部分视图渲染的。感谢

1 个答案:

答案 0 :(得分:0)

您无法使用RenderPertial在Viewmodel中渲染ViewModel。

您必须使用@Html.EditorFor(model => model.PurchasesViewModel)

然后在共享文件夹或您正在浏览的文件夹中创建一个名为EditorTemplates的文件夹。

接下来,您必须使用ViewModels名称在该文件夹中创建一个视图。因此,在您的情况下,您必须创建一个名为PurchasesViewModel

的视图
相关问题