Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对列表使用编辑器模板_C#_Asp.net Mvc - Fatal编程技术网

C# 对列表使用编辑器模板

C# 对列表使用编辑器模板,c#,asp.net-mvc,C#,Asp.net Mvc,我有类似的东西 public class ResumeVm { public ResumeVm() { EducationVms = new List<EducationVm>(); } public Guid UserId { get; set; } public string FirstName { get; set; } public string LastName { get; set; } publ

我有类似的东西

public class ResumeVm
{
    public ResumeVm()
    {
        EducationVms = new List<EducationVm>();
    }

    public Guid UserId { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }

    public List<EducationVm> EducationVms { get; set; }
}

 public class WorkExperienceVm
    {
        public string Title { get; set; }
    }
但它不知道如何通过教育VMS

如果我这样做

@Html.EditorForModel("WorkExperienceVm", @Model.EducationVms )
由于它只希望发送1个Vm,所以它被创建

//查看工作体验虚拟机

@model ViewModels.WorkExperienceVm
@Model.Title 
您正在使用的EditorForModel重载不正确。EditorForModel为当前模型生成一个编辑器模板,即ResumeVm,您传入的字符串是对象,而不是视图的名称

我假设WorkExperienceVm是视图的名称。尝试使用EditorFor:

不幸的是,这种方法无法通过使用UIHits或手动将视图名称传递到帮助器中来实现,尽管如果您不介意遵守模板的严格命名约定,这不太可能会妨碍您


我不久前写了一篇文章,解释了编辑器模板的不同助手之间的差异。它专门处理标签帮助程序,但相同的原则适用于编辑器帮助程序。

能否显示WorkExperienceVm编辑器和ViewModels的代码。WorkExperienceVm是,WorkExperienceVm是编辑器模板的名称。那么,与主视图中的循环代码相比,您的代码有什么优势呢。它能正确处理ID吗?@chobo2在某些情况下,框架中有一两个关于为集合生成名称字符串的错误,但是,如果编辑器模板被键入到EducationVm的单个实例,那么这个应该可以工作。我在前面的评论中提到的场景是,当模型本身是集合时,而不是这里的情况,所以你应该没问题。仍然不清楚在“简历”视图中的EditorFor vs just foreach循环中使用此模板的优点。@chobo2此优点与任何编辑器模板相同-你可以在任何地方重用它。
@model ViewModels.WorkExperienceVm
@Model.Title 
@for(int i = 0; i < Model.EducationVms.Count; i++)
{
    Html.EditorFor(m => m.EducationVms[i], "WorkExperienceVm")
}
@Html.EditorFor(m => m.EducationVms)