【问题标题】:asp.net mvc use enum to display textvalueasp.net mvc 使用枚举来显示文本值
【发布时间】:2014-03-03 09:42:53
【问题描述】:

我正在使用 asp.net mvc 4,在我的页面中我有一个付款列表:

id | status| customerid
1  | 1     | 2

代码:

  <tr>
            <td>
                    @Html.DisplayFor(modelItem => item.id)
            </td>
            <td>

         @{
            var status = ((status)(modelItem => item.StatusId)).toString();
         }

            </td>
            <td>
                    @Html.DisplayFor(modelItem => item.CustomerId)
            </td>
         </tr>

我在控制器中定义了一个枚举:

enum status { Pending = 1, Paid = 2 };

如何在我的 razorpage 上显示文本 ie Pending 而不是 id 1?我现在遇到错误:

 Cannot convert lambda expression to type 'MyApp.Models.status' because it is not a delegate type

【问题讨论】:

标签: asp.net asp.net-mvc-4 razor-2


【解决方案1】:

您可以扩展 HtmlHelper(一种将呈现文本而不是 id 编号的方法) 见How to extend html helper

【讨论】:

    【解决方案2】:

    您需要先将枚举转换为

    var status=((status)(modelItem => item.StatusId)).toString();
    

    这应该给你枚举的名称。

    然后你可以使用@Html.Label( 在你的视图上渲染它而不是@Html.DisplayFor(modelItem =&gt; item.StatusId)

    更多关于casting enum的详情

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-18
      • 1970-01-01
      • 2011-09-02
      相关资源
      最近更新 更多