C# 显示一个模型';使用字典将属性从char转换为字符串

C# 显示一个模型';使用字典将属性从char转换为字符串,c#,asp.net-mvc,asp.net-mvc-4,razor,C#,Asp.net Mvc,Asp.net Mvc 4,Razor,我的类模型中有一个属性,可以包含4个值,我想使用razor显示它,但根据字符更改它的值,例如: 如果我的类属性的值是'C',我想用razor显示它,这样结果可以是这样的:“Captured” 我应该使用注释吗?万无一失的包装?我对所有想法都持开放态度,谢谢。假设这些价值观变化不大,有几种方法可以做到这一点。 第一种方法是使用helper函数来显示所需内容,而不是代码值。 另一种方法是在模型上添加一个属性,该属性接受代码值并返回字符串值。 比如说 public string Code {get;

我的类模型中有一个属性,可以包含4个值,我想使用razor显示它,但根据字符更改它的值,例如:

如果我的类属性的值是'C',我想用razor显示它,这样结果可以是这样的:“Captured”


我应该使用注释吗?万无一失的包装?我对所有想法都持开放态度,谢谢。

假设这些价值观变化不大,有几种方法可以做到这一点。 第一种方法是使用helper函数来显示所需内容,而不是代码值。 另一种方法是在模型上添加一个属性,该属性接受代码值并返回字符串值。 比如说

public string Code {get; set;}

public string CodeName {get { 
switch(Code){
case "C":
return "Captured";
case "B"
return "blah"; 

}

把逻辑放在你的模型里。另外,为了减少错误,不要使用switch语句

public class MyModel
{
  private readonly Dictionary<char,string> _prop = new
    Dictionary<char, string>
    {
      { 'c', "Captured" }
    };

  public char MyValue { get; set; }

  public string MyValueDisplay 
  {
    get 
    {
      string result;
      if (!_prop.TryGetValue(MyValue, out result))
      {
        result = "Default Value";
      }
      return result;
    }
  }
}
公共类MyModel
{
专用只读词典_prop=new
字典
{
{'c',“捕获”}
};
公共字符MyValue{get;set;}
公共字符串MyValueDisplay
{
得到
{
字符串结果;
如果(!_prop.TryGetValue(MyValue,输出结果))
{
结果=“默认值”;
}
返回结果;
}
}
}