C# Viewmodel DisplayName上的悬空类未在LabelFor上使用
我正在尝试获取视图模型上的内部类的显示名称,以便在labelfor上显示 但是,它仅显示DetailsTab.PrimaryContact.Name的“名称” 我也尝试过将属性更改为Display(Name=“”),但似乎不起作用。无论我看到哪里,他们都说这应该起作用,但我就是无法让它起作用。我错过什么了吗 问题:如何获取内部属性以使用labelfor上的displaynameC# Viewmodel DisplayName上的悬空类未在LabelFor上使用,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,我正在尝试获取视图模型上的内部类的显示名称,以便在labelfor上显示 但是,它仅显示DetailsTab.PrimaryContact.Name的“名称” 我也尝试过将属性更改为Display(Name=“”),但似乎不起作用。无论我看到哪里,他们都说这应该起作用,但我就是无法让它起作用。我错过什么了吗 问题:如何获取内部属性以使用labelfor上的displayname public class CustomerDetailsData { [DisplayName
public class CustomerDetailsData
{
[DisplayName("Name")]
[StringLength(250)]
public string Name { get; set; }
[StringLength(250)]
public string Logo { get; set; }
[DisplayName("Tenant ID")]
public string CustomerId { get; set; }
public DetailsData DetailsTab { get; set; }
public class DetailsData
{
[DisplayName("Industry")]
[StringLength(250)]
public string Industry { get; set; }
[DisplayName("Team Count")]
[StringLength(250)]
public string TeamCount { get; set; }
public PrimaryContactData PrimaryContact { get; set; }
public class PrimaryContactData
{
[DisplayName("Primary Contact Name")]
public string Name { get; set; }
[DisplayName("Primary Contact Email")]
public string Email { get; set;}
[DisplayName("Primary Contact Phone")]
public string Phone { get; set;}
}
}
}
<div class="row">
<div class="large-2 columns">
@Html.LabelFor(model => model.DetailsTab.PrimaryContact.Name)
</div>
<div class="large-10 columns">
@Html.DisplayFor(model => model.DetailsTab.PrimaryContact.Name)
</div>
</div>
公共类CustomerDetailsData
{
[显示名称(“名称”)]
[长度(250)]
公共字符串名称{get;set;}
[长度(250)]
公共字符串标志{get;set;}
[显示名称(“租户ID”)]
公共字符串CustomerId{get;set;}
public DetailsData DetailsTab{get;set;}
公共类详细信息数据
{
[显示名称(“行业”)]
[长度(250)]
公共字符串行业{get;set;}
[显示名称(“团队计数”)]
[长度(250)]
公共字符串TeamCount{get;set;}
public PrimaryContactData PrimaryContact{get;set;}
公共类PrimaryContactData
{
[显示姓名(“主要联系人姓名”)]
公共字符串名称{get;set;}
[显示名称(“主要联系人电子邮件”)]
公共字符串电子邮件{get;set;}
[显示名称(“主要联系人电话”)]
公用字符串电话{get;set;}
}
}
}
@LabelFor(model=>model.DetailsTab.PrimaryContact.Name)
@DisplayFor(model=>model.DetailsTab.PrimaryContact.Name)
似乎我的项目没有正常构建,我进行了重建,它开始拾取我的DisplayName只是为了进行测试,您能否将PrimaryContactData
中的Name
属性更改为其他内容,如PrimaryContactName
并再次测试它?Hi@Alisson我做了上述操作,它返回了“PrimaryContactName”,因此假设其间距为大写。理想情况下,我可以使用LabelFor和DisplayName,因为我觉得没有必要在属性名称中再次声明PrimaryContact,因为我已经将它分离出来了。我认为这不是原因。检查属性时,它会查看DisplayNameFor()
和其他HTML
helper方法依赖于Model
。实际上,看起来由于属性名(name)恰好存在于模型中(即CustomerDetailsData
),助手考虑的是来自模型的属性,而不是子类。我确实将属性重命名回name,然后再次测试,它可以很好地将属性用作名称。重新启动visual studio为我修复了它。感谢您的回复;如果你没有把我的想法记下来,我就不会尝试了。嗯,那很有趣。我从来没有遇到过这样的麻烦,但很高兴知道你必须做什么。