我有一个项目模型和一个任务模型。
在我的控制器中说我有
public ActionResult Create()
{
Project p = new Project();
Task t1=new Task();
Task t2=new Task();
Task t3=new Task();
p.tasks.Add(t1);
p.tasks.Add(t2);
p.tasks.Add(t3);
}
在我强烈打印的项目视图中我有
Html.EditorForModel()
如何让这个显示项目的字段以及每个任务的字段?
请帮忙!
-------补充说明
public ActionResult Create(Guid LicenseId)
{
License license;
if (!User.IsInRole("admin"))
license = _service.GetContributor(User.Identity.Name).Licenses.Single(l => l.Id == LicenseId);
else
license = _service.GetLicenseById(LicenseId);
if (license == null)
return RedirectToAction("Index", "Home");
IncomeDeclaration i = new IncomeDeclaration();
foreach(var ecoActLicense in license.EconomicActivitiyLicenses)
{
EconomicActivityIncomeDeclaration ecoActIncDec = new EconomicActivityIncomeDeclaration();
ecoActIncDec.ActivityTax = 20;
ecoActIncDec.EconomicActivityId = ecoActLicense.EconomicActivityId;
i.EconomicActivityIncomeDeclarations.Add(ecoActIncDec);
}
return View(i);
}
此代码是我首次将EconomicActivityIncomeDeclarations与IncomeDeclaration联系起来。
并且在View中,这是为IncomeDeclaration强类型的,我只需要
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>IncomeDeclaration</legend>
@Html.EditorForModel()
@Html.EditorFor(m =>m.EconomicActivityIncomeDeclarations)
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
答案 0 :(得分:1)
您的视图应该作为模型强烈输入项目,如果是,它应该主要是自动工作。
Project上的公共属性(如果它是强类型视图的指定模型)将被发现并显示标签和文本框以供编辑。
如果要为编辑器显示属性集合,可以执行以下操作:
Html.EditorForModel(model => model.tasks)
如有必要,您可以为收藏品添加EditorTemplate:Views-->Shared-->EditorTemplates-->Task.cshtml
。