C# .NET核心视图属性名称与模型属性名称不同

C# .NET核心视图属性名称与模型属性名称不同,c#,asp.net-core,.net-core,C#,Asp.net Core,.net Core,我有一个ajax函数,当服务器端发生错误时,它会向字段返回错误消息 以下是我显示错误的方式: $.each(result.errors, function (index, item) { // Get message placeholder var element = $('[data-valmsg-for="' + item.propertyName + '"]'); element.empty(); // Update message

我有一个ajax函数,当服务器端发生错误时,它会向字段返回错误消息

以下是我显示错误的方式:

$.each(result.errors, function (index, item) {
    // Get message placeholder
    var element = $('[data-valmsg-for="' + item.propertyName + '"]');
    element.empty();
    // Update message
    element.append($('<span></span>').text(item.errorMessage));
    // Update class names
    element.removeClass('field-validation-valid').addClass('field-validation-error');
    $('#' + item.propertyName).removeClass('valid').addClass('input-validation-error');
});
它仅将BranchId显示为字段的名称

这就是模型:

public class UserBranchDetailsViewModel
{
    public string Id { get; set; }
    public string UserId { get; set; }
    public string TenantId { get; set; }
    public BranchDropdownListViewModel BranchDropdownListViewModel { get; set; }
}

public class BranchDropdownListViewModel
{
    [Required]
    [Display(Name = "Branch")]
    public string BranchId { get; set; }
    public IEnumerable<SelectListItem> Branch { get; set; }
}
public类UserBranchDetailsViewModel
{
公共字符串Id{get;set;}
公共字符串用户标识{get;set;}
公共字符串TenantId{get;set;}
公共BranchDropdownListViewModel BranchDropdownListViewModel{get;set;}
}
公共类BranchDropdownListViewModel
{
[必需]
[显示(Name=“Branch”)]
公共字符串{get;set;}
公共IEnumerable分支{get;set;}
}

如何匹配控制器视图中显示的名称?我必须手动执行吗?

使用nameof只会生成属性名称的最后一部分,在您的情况下是
BranchId

既然注射
HtmlHelper
并不是那么简单,我建议你这么做

ModelState.AddModelError($"{nameof(Input.BranchDropdownListViewModel)}.{nameof(Input.BranchDropdownListViewModel.BranchId)}", "Branch already exists");
但是如果您真的想使用
HtmlHelper
,请查看此
HtmlHelper.NameFor()

public class UserBranchDetailsViewModel
{
    public string Id { get; set; }
    public string UserId { get; set; }
    public string TenantId { get; set; }
    public BranchDropdownListViewModel BranchDropdownListViewModel { get; set; }
}

public class BranchDropdownListViewModel
{
    [Required]
    [Display(Name = "Branch")]
    public string BranchId { get; set; }
    public IEnumerable<SelectListItem> Branch { get; set; }
}
ModelState.AddModelError($"{nameof(Input.BranchDropdownListViewModel)}.{nameof(Input.BranchDropdownListViewModel.BranchId)}", "Branch already exists");