假设 MyString 的值为“Home”。如何在资源标签中将其转换为小写字母(“home”)?例如,我不想在资源文件中同时存储字符串的大写/标题和小写-6ren">
gpt4 book ai didi

ASP.NET 字符串资源到小写?

转载 作者:行者123 更新时间:2023-12-02 02:00:48 25 4
gpt4 key购买 nike

我在 ASPX 中包含一个字符串资源:

<asp:Literal runat="server" Text="<%$ Resources:Global, MyString %>"/>

假设 MyString 的值为“Home”。如何在资源标签中将其转换为小写字母(“home”)?例如,我不想在资源文件中同时存储字符串的大写/标题和小写变体。

我意识到我可以像这样正常地(在控件之外)这样做:

<%= Resources.Global.MyString.ToLower() %>

但是当我必须为控件的某些属性使用资源时,这无济于事。我希望能够做一些简单的事情,例如:

<asp:Literal runat="server" Text="<%$ (Resources:Global, MyString).ToLower() %>"/>

最佳答案

我最终构建了自己的 ExpressionBuilder,它使用内置的 ResourceExpressionBuilder 获取底层资源值,然后将其转换为小写:

将基本表达式转换为小写字符串

public class ResourceLowerCase : ResourceExpressionBuilder
{
public override CodeExpression GetCodeExpression(BoundPropertyEntry entry, object parsedData, ExpressionBuilderContext context)
{
CodeExpression getResourceExpression = base.GetCodeExpression(entry, parsedData, context);
CodeMethodInvokeExpression toStringExpression = new CodeMethodInvokeExpression(getResourceExpression, "ToString");
CodeMethodInvokeExpression toLowerExpression = new CodeMethodInvokeExpression(toStringExpression, "ToLower");

return toLowerExpression;
}
}

注册表达式构建器

<system.web>
<expressionBuilders>
<add expressionPrefix="ResourceLowerCase" type="My.Project.Compilation.ResourceLowerCase"/>
</expressionBuilders>
</compilation>

调用表达式生成器

<asp:Literal runat="server" Text="<%$ ResourceLowerCase:Global, MyString %>" />

关于ASP.NET 字符串资源到小写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17296661/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com