ASP.Net/C#:替换数据绑定字段中的字符

doo*_*osh 4 c# asp.net ascx

在ascx文件中,我正在显示数据绑定字段中的数据,如下所示:

<%# Eval("Description")%>
Run Code Online (Sandbox Code Playgroud)

数据源是从代码绑定的.

有时候Description我需要替换一些字符.我很乐意,如果我能做这样的事情:

<%# Replace(Eval("Description"), "a", "b")%>
Run Code Online (Sandbox Code Playgroud)

但是当然在数据绑定操作中不允许这样做(<%#).

我不想在代码背后硬代码,因为在后面的代码中提取字段会非常难看,可能会将其提取到变量然后在ascx页面上输出变量.我希望有一些(可能非常简单)的方法,我可以直接在ascx页面上进行替换.

Cod*_*uth 16

您可以将值强制转换为字符串并按如下方式处理:

<%# ((string)Eval("Description")).Replace("a", "b") %>
Run Code Online (Sandbox Code Playgroud)

要么

<%# ((string)DataBinder.Eval(Container.DataItem, "Description")).Replace("a", "b") %>
Run Code Online (Sandbox Code Playgroud)

不过要小心,因为如果Description是null你会打一个NullReferenceException.你可以做以下事情来避免这种情况:

<%# ((string)Eval("Description") ?? string.Empty).Replace("a", "b") %>
Run Code Online (Sandbox Code Playgroud)