有谁知道 MVC 视图的任何示例或教程,该视图在一个表单上显示所有父/子数据,并允许所有子记录可编辑?
例如,假设我有一个人员表和另一个包含他们拥有的车辆的表。一对一的形式,我想显示给定人的每辆车,并使数据元素可编辑(即车牌号、汽车颜色等),以防出现错误。我不想跳到每辆车的单独编辑表单。
到目前为止,我的尝试已经使我能够显示数据,但无法将其发送回控制器。我已尽力缩小问题范围here,但我仍然不明白,我认为可能需要一个更广泛的例子。有任何想法吗?
你可以尝试这样的事情。
假设你有这个对象:
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);
在您的控制器上,将打印“Blue”。
这是一个非常简单的例子,但我相信您已经明白了。有关将表单绑定到数组、列表、集合、字典的更多示例,请查看here.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)