还有更好的方法在控制器上发布类的对象列表吗?
本文关键字:对象 布类 列表 控制器 更好 方法 | 更新日期: 2023-09-27 18:07:23
我想把我的对象列表发送给我的控制器。
这是我的类文件: public class MyModel
{
public int Id {get; set;}
public List<ChildModel> ChildModelObject{ get; set; }
}
public class ChildModel
{
public int ChildId {get; set;}
public int sum {get; set;}
}
My View Page:
@model Demo.MyModel
@using (Html.BeginForm())
{
@{ int i = 0; }
@foreach (var item in Model.ChildModelObject) //first I am displaying value and then on submit i will post this value
{
<input type="hidden" name="@Html.Raw("ChildModelObject[" + i + "].ChildId")" value="@item.ChildId" /> //This is how i am taking value and it is working perfect and i am getting childid.
@Html.DisplayFor(modelItem => item.sum)
}
<input type="submit" value="Save"/>
}
控制器:
public ActionResult Index(MyModel model)//In this i want all childid when form is posted
{
}
所以现在当我点击提交按钮,然后我想要所有的孩子在我的MyModel对象。
谁能告诉我比我现在做的更好的方法吗?您应该像这样为您的ChildModel
类创建编辑器模板:
@model Demo.ChildModel
@Html.HiddenFor(x => x.ChildId)
@Html.DisplayFor(x => x.sum)
将其放在Views/Shared/EditorTemplates
文件夹中(或在控制器EditorTemplates中),并命名为ChildModel.cshtml
然后你可以这样使用:
@model Demo.MyModel
@using (Html.BeginForm())
{
@Html.EditorFor(x=>x.ChildModelObject)
<input type="submit" value="Save"/>
}
注意你不需要任何循环MVC自己生成右绑定