ASP.NET MVC编辑多个子logging的例子

有谁知道MVC视图的任何示例或教程,显示父/子数据都在一个表单上,并允许所有的子logging是可编辑的?

比如说,我有一张人的桌子,另一张桌子上有他们拥有的车辆。 其中一种forms,我希望每个车辆都能显示给定的人,并且在出现错误的情况下可以编辑数据元素(即车牌号码,车牌颜色等)。 我不想跳到每个车辆的单独编辑表格。

到目前为止,我的尝试已经使我能够显示数据,但是我无法将其发送回控制器。 我试图尽量缩小这个问题的范围,但是我仍然没有得到它,我认为更广泛的例子可能是为了。 有任何想法吗?

你可以尝试这样的事情。

假设你有这个对象:

public class Vehicle { public int VehicleID { get; set; } public string LicencePlate { get; set; } public string Color { get; set; } } 

这是您的控制器操作,您将使用它来编辑车辆详细信息(您将在何处发布表单):

 [AcceptVerbs(HttpVerbs.Post)] public ActionResult EditVehicles(int Owner, Vehicle[] vehicles) { //manipulate the data, then return back to the list return RedirectToAction("YourAction"); } 

那么你应该这样设置你的表格:

 <!--have a form for each person, listing their vehicles--> <form action="/EditVehicles" method="post"> <input type="hidden" name="Owner" value="25" /> <input type="hidden" name="Vehicles[0].VehicleID" value="10" /> <input type="text" name="Vehicles[0].LicencePlate" value="111-111" /> <input type="text" name="Vehicles[0].Color" value="Red" /> <input type="hidden" name="Vehicles[1].VehicleID" value="20" /> <input type="text" name="Vehicles[1].LicencePlate" value="222-222" /> <input type="text" name="Vehicles[1].Color" value="Blue" /> <input type="submit" value="Edit" /> </form> 

这将帮助DefaultModelBinder正确地将表单数据绑定到控制器中的模型。 因此Response.Write(vehicles[1].Color); 在您的控制器上,将打印“蓝色”。

这是一个非常简单的例子,但我相信你明白了。 有关将表单绑定到数组,列表,集合,字典的更多示例,请参阅此处 。

我认为最好的解决方法是使用AJAXpost,每当用户点击提交button时,您可以在该事件中挂钩,创build一个您想要保存的东西的JSON数组,并将其发送。

另一种方法当然是从POST操作中的“FormCollection”对象中获取所有的信息。 你只需要遍历所有的键parsing数据,然后处理它。