假设我有2个型号:
客户(ID,名称)< [0..1 - *]>发票(ID,名称,价值)。
现在,Route / Customer / Create允许我创建一个新客户(名称的一个文本框)和TelerikGrid下面,它将发票添加到客户。
我的解决方案是:
我的目标:
/客户/创建/ - >创建一个新的CustomerViewModel-Object,显示带有网格的视图,该网格绑定到InvoiceViewModel(CustomerViewModel的属性)
.DataBinding(dataBinding => dataBinding
.Ajax()
.Insert("InsertInvoice", "Customer")
ajax-Method应该像:
private CustomerViewModel myCustomerViewModel;
public ActionResult Create()
{
this.myCustomerViewModel = new CustomerViewModel();
this.myCustomerViewModel = new List<InvoiceViewModel>();
return View(this.myCustomerViewModel);
}
[AcceptVerbs(HttpVerbs.Post)]
[GridAction]
public ActionResult InsertInvoice(InvoiceViewModel newInvoice)
{
this.myCustomerViewModel.Invoices.Add(newInvoice)
return View(new GridModel(this.myCustomerViewModel.Invoices));
}
最后,当我点击“创建”按钮创建新客户时,它应该将其保存到数据库。
现在我正在坚持,因为当我调用“InsertInvoice”-Method时,myCustomerViewModel为NULL。
主意?
最好的问候, 戴夫
答案 0 :(得分:0)
问题解决了,但我不知道它是否“干净”,但是:
旧:
private CustomerViewModel myCustomerViewModel;
现在:
public CustomerViewModel CurrentCustomer
{
get
{
return (CustomerViewModel )Session["CurrentCustomer"];
}
set
{
Session["CurrentCustomer"] = value;
}
}