【发布时间】:2018-04-06 15:57:56
【问题描述】:
当发送列表以查看它时返回正确的长度但为空字段
我使用 foreach 遍历列表以显示输入元素中的每个字段,例如,如果列表长度为 5 但所有字段为空,则它会迭代 5 次
查看
@model.myProject.TwoModels
@using (Html.BeginForm("Edit", "Home", FormMethod.Post))
{
@foreach (var tuple in Model.personList )
{
@Html.EditorFor(model => @tuple.Name)
}
我的模型
public partial class Person
{
// set and get to id and name
public Person(int Id,string Name)
{
Id = this.Id;
Name = this.Name;
}
}
类
public class A
{
private List<Person> personList { get; set; }
public List<Person> PersonList
{
get
{
return personList;
}
set
{
personList= value;
}
}
}
public class B
{
public void method(B b)
{
b.PersonList = new List<Person>();
//it's just example
for (int i=0;i<5;i++)
{
b.PersonList.Add(new Person(1,"Ali")));
}
}
}
我用这个模型来组合拖曳模型
namespace myproject.Models
{
public class TwoModels
{
// example is another model
public example firstModel { get; set; }
public List<Person> personList { get; set; }
}
}
控制器
public List<Person> method()
{
A a =new A();
B b =new B();
//other code //
return b.PersonList;
}
public ActionResult Edit(int id)
{
List <Person> list = method();
example ex=database.example.Find(id);
var TwoModels = new TwoModels { firstModel = ex, personList = list };
}
【问题讨论】:
-
看起来您需要调用
B.method(b)才能创建列表并填充它。也许而不是B类中的method应该是构造函数的逻辑? -
您可能还想阅读Post an HTML Table to ADO.NET DataTable,因为当您提交表单时没有任何效果
-
@Stephen Muecke 我知道这只是示例而不是完整的代码,因为我有一个提交按钮
-
这与没有提交按钮无关 - 请阅读 - 你不能使用
foreach循环来生成表单控件!
标签: c# asp.net-mvc