在 Ruby on Rails 中,配置中有一个 YAML 文件,可让您定义模型属性名称的纯英文版本。实际上,它可以让您定义纯任何语言版本:它是国际化内容的一部分,但大多数人将它用于向用户显示模型验证结果之类的事情。
我的 .NET MVC 4 项目需要这种功能。用户提交表单并收到一封电子邮件,其中包含他们发布的几乎所有内容(表单绑定(bind)到模型)。我写了一个辅助方法来通过反射转出属性/值对的 HTML 表,例如
foreach (PropertyInfo info in obj.GetType()
.GetProperties(BindingFlags.Public |
BindingFlags.Instance |
BindingFlags.IgnoreCase))
{
if (info.CanRead && !PropertyNamesToExclude.Contains(info.Name))
{
string value = info.GetValue(obj, null) != null ?
info.GetValue(obj, null).ToString() :
null;
html += "<tr><th>" + info.Name + "</th><td>" + value + "</td></tr>";
}
}
当然,这会打印出 info.Name
之类的“OrdererGid”,而“Orderer Username”可能会更好。 .NET 中有这样的东西吗?
最佳答案
有一个名为 DisplayName 的数据属性允许您执行此操作。只需用这个注释您的模型属性和每个属性的友好名称
[DisplayName("Full name")]
public string FullName { get; set; }
关于c# - .NET 中用户友好的属性名称,如 Rails 中的属性名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14268390/