我有两个模型MainTransaction和SubTransaction
public class MainTrasaction{
public int id{get;set;}
public DateTime transDate{get;set;}
public String transCode{get;set;}
public String TransPoster{get;set;}
public ICollection<SubTransaction>{get;set;}
}
public class SubTransaction{
public int id{get;set;}
public int MainTransId{get;set;}
public double debit{get;set;}
public double credit{get;set;}
}
我希望以这种方式组合两个模型,在单个创建表单中,将有一行MainTransaction和多行SubTransaction。所以我创建了一个ViewModel
public class Voucher{
public MainTransaction mt{get;set;}
public List<SubTransaction> st {get;set}
}
这个ViewModel的目的是处理一个Entry Form的创建,其中可以同时插入MainTransaction和SubTransaction的多个记录的单个记录。但是,在制作了上述视图模型后,我无法将其合并到我的视图中。任何建议的人。我该怎么办。
这是控制器动作
public ActionResult GenerateVoucher(){
return View();
}
和视图
@model VoucherProject.Models.Voucher
@Html.TextBoxFor(m=>m.MainTransaction.transDate)
// And so on for all the MainTransaction fields
// SubTransaction.. Not sure who to proceed
/// Not sure what to do here..
任何想法。在此先感谢..
答案 0 :(得分:0)
是否询问表单的创建或表单数据的提交?
如果我理解正确,想要使用Voucher
ViewModel填充视图。当您这样做时,您可以在视图中迭代SubTransaction
列表,如下所示:
for (int i = 0; i < Model.st.Count; i++)
{
@Html.TextBoxFor(x => x.st[i].debit)
}
假设您已使用某些内容填充了列表,这将为每个列表项创建输入。这是用户输入的表单。
当您的数据张贴到控制器方法时,这些值将绑定到&#39;凭证&#39;模型,您可以在foreach
上执行List<SubTransaction>
并按照以下方式处理它们:
foreach (SubTransaction item in model.st)
{
// process the SubTransaction record
}