帮助asp.net mvc EditorFor

时间:2011-02-23 05:05:03

标签: asp.net-mvc templates editortemplates mvc-editor-templates

我有一个项目模型和一个任务模型。

在我的控制器中说我有

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>
}

1 个答案:

答案 0 :(得分:1)

您的视图应该作为模型强烈输入项目,如果是,它应该主要是自动工作。

Project上的公共属性(如果它是强类型视图的指定模型)将被发现并显示标签和文本框以供编辑。

如果要为编辑器显示属性集合,可以执行以下操作:

Html.EditorForModel(model => model.tasks)

如有必要,您可以为收藏品添加EditorTemplate:Views-->Shared-->EditorTemplates-->Task.cshtml