我有以下代码和现有客户。 我需要创建一个创建订单的表单,并将其传递给我的控制器。MVC.Net绑定复杂模型?
我试着将该页面上的模型类型更改为Order而不是Customer,但后来我必须传递Order对象,或者至少是OrderId。
模型
public class Customer
{
public int Id { set; get; }
public string FirstName { set; get; }
public string LastName { set; get; }
public List<Order> Orders { get; set;}
}
public class Order
{
public int Id { set; get; }
public string ItemName { set; get; }
public DateTime SomeDate { set; get; }
}
控制器
public class OrderController : Controller
{
[HttpPost]
public Create ActionResult(Customer customer)
{
// Customer doesn't have the values that it suppose to have
// All fields including the array of orders are null
customerStorage.UpdateOrders(customer);
return ("ItemListPartial", customer.orders);
}
}
查看
@model Company.Application.Model.Customer;
@using (Ajax.BeginForm(new AjaxOptions { UpdateTargetId = "result" }))
{
// How can I bind this to Order object ?
// I can't define model as Order, because then I need to pass Customer Separately
@Html.TextBoxFor(o => o.Orders[0].ItemName)
@Html.TextBoxFor(o => o.Orders[0].SomeDate)
<input type="submit" value="Add" />
}
如果要创建一个订单,你的对象应该是一个订单。您是否想要将其与客户相关联?不知道为什么你不使用Order对象进行绑定。 – 2013-03-11 01:17:22
'公共ActionResult(客户客户)'这是一个错字?缺少函数名称。 – 2013-03-11 01:18:41
@Ravi谢谢,这是一个固定它的类型。 – aryaxt 2013-03-11 01:30:04