Html 我可以在ASP.Net页面的标记中使用Enum.TryParse吗
我从实体框架中读取数据,并将ASP.NET页面(ASPX)上的转发器绑定到它。 我的一个字段-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) 我们可以在页面后面的代码中编写一个
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
并返回字符串。谢谢您的提示!这又把我推上了正确的道路。。祝你好运