在控制器上 post class 的对象列表的任何更好的方法
Any better way to post list of object of class on controller
我想 post 我的对象列表到我的控制器。
这是我的 class 文件:
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;}
}
我的浏览页面:
@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 对象中的所有 childid。
谁能告诉我比我正在做的更好的方法吗??
您应该像这样为 ChildModel
class 创建编辑器模板:
@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 自己生成正确的绑定
我想 post 我的对象列表到我的控制器。
这是我的 class 文件:
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;}
}
我的浏览页面:
@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 对象中的所有 childid。
谁能告诉我比我正在做的更好的方法吗??
您应该像这样为 ChildModel
class 创建编辑器模板:
@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 自己生成正确的绑定