gfr*_*zle 23 asp.net-mvc master-detail
有没有人知道MVC视图的任何示例或教程,它们在一个表单上显示父/子数据,并允许所有子记录可编辑?
例如,假设我有一张人的桌子,另一张包含他们拥有的车辆.一个表格,我想展示给定人的每辆车,并在出现错误时使数据元素可编辑(即车牌号,车颜色等).我不想为每辆车跳转到单独的编辑表格.
到目前为止,我的尝试已经让我能够显示数据,但我无法将其发回给控制器.我试图尽可能我可以缩小问题在这里,但我仍然没有得到它,我觉得更广阔的例子可能是为了.有任何想法吗?
Çağ*_*kin 27
你可以尝试这样的事情.
假设你有这个对象:
public class Vehicle
{
public int VehicleID { get; set; }
public string LicencePlate { get; set; }
public string Color { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这是您用于编辑车辆详细信息的控制器操作(您将在何处发布表单):
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult EditVehicles(int Owner, Vehicle[] vehicles)
{
//manipulate the data, then return back to the list
return RedirectToAction("YourAction");
}
Run Code Online (Sandbox Code Playgroud)
然后你应该这样设置你的表单:
<!--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>
Run Code Online (Sandbox Code Playgroud)
这将有助于DefaultModelBinder将表单数据正确绑定到控制器中的模型.因此,Response.Write(vehicles[1].Color);在您的控制器上,将打印"蓝色".
这是一个非常简单的例子,但我相信你明白了.有关将表单绑定到数组,列表,集合,词典的更多示例,请查看此处.
| 归档时间: |
|
| 查看次数: |
11108 次 |
| 最近记录: |