2015-11-08 73 views
1

我是MVC中的新成员。我曾尝试阅读关于如何在集合中使用显示模板的在线文章。发布模板mvc4

这是我的模型

public class InsuranceListViewModel 
{ 
    public IList<InsuranceViewModel> InsuranceViewModelList { get; set; } 
    public InsuranceViewModel InsuranceViewModel { get; set; } 
    public List<InsuranceSummaryViewModel> InsuranceSummaryViewModelList { get; set; } 
} 

SummaryViewModel

public class InsuranceSummaryViewModel 
{ 
    public string FriendlyName { get; set; } 
    public int InsuranceId { get; set; } 
    public string GroupId { get; set; } 
    public string MemberId { get; set; } 
    public Nullable<System.DateTime> PolicyStartDate { get; set; } 
    public Nullable<System.DateTime> PolicyEndDate { get; set; } 

} 

InsurnaceDisplay.cshtml

@model P2PExchange.MVC.Web.Areas.Patient.Models.InsuranceSummaryViewModel 
@Html.DisplayFor(x => x.InsuranceId) 
@Html.DisplayFor(x => x.FriendlyName) 
@Html.DisplayFor(x => x.GroupId) 
@Html.DisplayFor(x => x.MemberId) 
@Html.DisplayFor(x => x.PolicyStartDate) 
@Html.DisplayFor(x => x.PolicyEndDate) 

_Insurance.cshml

@model Models.InsuranceListViewModel 
@Html.DisplayFor(x=>x.InsuranceSummaryViewModelList) 

我上面的代码只显示保险友好名称而不是显示模板中的所有字段。

有人可以请帮助/指导我如何显示UI上的正确数据?

回答

1

DisplayTemplate需要被定位在/Views/Shared/DisplayTemplates/Views/yourControllerName/DisplayTemplates文件夹,需要进行命名,以匹配类的名称,即InsuranceSummaryViewModel.cshtml

+0

非常感谢斯蒂芬·马克!我确实花了半天的时间来解决这个问题,但你在几分钟内帮助了我。我确实在displayTemplates文件夹中保留了我的显示模板,但是文件名不正确,我修正了文件并且工作正常。 – M005

+0

值得一提的是,如果类的名称与模板不匹配,则会覆盖'DisplayFor'(和'EditorFor')接受模板名称:'@ Html.DisplayFor(x => x.InsuranceSummaryViewModelList, “InsuranceSummary”)''如果你在斯蒂芬写的一个文件夹中有'InsuranceSummary.cshtml',它将起作用 –