Html 我可以在ASP.Net页面的标记中使用Enum.TryParse吗

Html 我可以在ASP.Net页面的标记中使用Enum.TryParse吗,html,asp.net,Html,Asp.net,我从实体框架中读取数据,并将ASP.NET页面(ASPX)上的转发器绑定到它。 我的一个字段-iFieldType-包含一个整数值,该整数值被解析为页面标记中的枚举项,如下所示: 这是因为用户不希望看到页面上的每个示例“1”,而是希望看到字段类型“TextBox”的名称。 不幸的是,iFieldType可能是NULL。 因此,我必须用Enum.TryParse替换Enum.Parse。 这可以在markup/html中完成吗?至少有两种可能的解决方案 A) 我们可以在页面后面的代码中编写一个

我从实体框架中读取数据,并将ASP.NET页面(ASPX)上的转发器绑定到它。 我的一个字段-
iFieldType
-包含一个整数值,该整数值被解析为页面标记中的枚举项,如下所示:


这是因为用户不希望看到页面上的每个示例“1”,而是希望看到字段类型“TextBox”的名称。 不幸的是,
iFieldType
可能是
NULL
。 因此,我必须用
Enum.TryParse
替换
Enum.Parse

这可以在markup/html中完成吗?

至少有两种可能的解决方案

A) 我们可以在页面后面的代码中编写一个公共(!)方法来执行tryparse

每个示例:

public string FieldTypeTryParseToString(object value)
{
    if (value == null)
    {
        return "0";
    }

    return value.ToString();
}
然后在标记中,我们实现了新方法:

<owiw:CustomTextBox runat="server" ReadOnly="true" ID="txt_FieldType"
    Text='<%# Enum.Parse(typeof(DatabaseHelper.CustomFieldTypes), FieldTypeTryParseToString(DataBinder.Eval(Container.DataItem, "iFieldType"))) %>' />

B) 我们也可以在标记中这样做,但这会使代码更加复杂。在本例中,我们检查该值是否为null

<owiw:CustomTextBox runat="server" ReadOnly="true" ID="txt_FieldType"
    Text='<%# Enum.Parse(typeof(DatabaseHelper.CustomFieldTypes), DataBinder.Eval(Container.DataItem, "iFieldType") == null ? "0" : Convert.ToString(DataBinder.Eval(Container.DataItem, "iFieldType"))) %>' />


也许,创建一个转换器类来执行
TryParse
并返回字符串。谢谢您的提示!这又把我推上了正确的道路。。祝你好运