我有一个带有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是使用部分视图渲染的。感谢
答案 0 :(得分:0)
您无法使用RenderPertial在Viewmodel中渲染ViewModel。
您必须使用@Html.EditorFor(model => model.PurchasesViewModel)
然后在共享文件夹或您正在浏览的文件夹中创建一个名为EditorTemplates
的文件夹。
接下来,您必须使用ViewModels名称在该文件夹中创建一个视图。因此,在您的情况下,您必须创建一个名为PurchasesViewModel