C# .NET核心视图属性名称与模型属性名称不同
我有一个ajax函数,当服务器端发生错误时,它会向字段返回错误消息 以下是我显示错误的方式: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
$.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");