Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么这条本地化路线会这样?_C#_Asp.net_Localization_Expressionbuilder - Fatal编程技术网

C# 为什么这条本地化路线会这样?

C# 为什么这条本地化路线会这样?,c#,asp.net,localization,expressionbuilder,C#,Asp.net,Localization,Expressionbuilder,我正在本地化一个ASP.NET网站。通常我只使用.aspx页面来本地化文本 对于asp.net控件,这将不起作用。我必须使用语法 但是,如果我有一个按钮,并以这种方式将文本属性本地化,但在其后面添加任何其他字符,则本地化将中断,并显示为纯文本 因此Text=“»;”显示为 » 我确信这是有原因的,我只是找不到MSDN上关于文本属性如何计算的解释。我甚至不能百分之百地确定ASP.net调用的是什么。这里实际发生的情况是,不是ASP.net编译器翻译您的: <asp:AContr

我正在本地化一个ASP.NET网站。通常我只使用.aspx页面来本地化文本

对于asp.net控件,这将不起作用。我必须使用语法

但是,如果我有一个按钮,并以这种方式将
文本
属性本地化,但在其后面添加任何其他字符,则本地化将中断,并显示为纯文本

因此
Text=“»;”
显示为
»


我确信这是有原因的,我只是找不到MSDN上关于文本属性如何计算的解释。我甚至不能百分之百地确定ASP.net调用的是什么。这里实际发生的情况是,不是ASP.net编译器翻译您的:

<asp:AControlWithATextProperty runat="server" Text="Some Text">
当它将
.aspx
文件中的标记转换为
.cs
文件并与代码隐藏相结合时,它实际上执行类似的操作:

<asp:AControlWithATextProperty runat="server" Text="<%$ Resources:ResourceFile, ResourceName %>">
asp.net编译器似乎无法处理将
标记的内容与来自标记的属性中的任何其他文本连接起来的问题。要么是一个bug,要么是出于设计。i、 e.您不会得到
ctl1.Text=ResourceExpressionBuilder.EvaluateExpression(“ResourceFile,Resourcename”)+“»;”


你可以在msdn上阅读更多关于的信息,一般来说,或者如果你真的想;一个用于本地化的实现(数据库支持,因此我没有使用ResourceExpressionBuilder)(3部分)。

尝试在其周围加单引号,而不是双引号。所以
Text='»;'@Bazzz,那没用。同样的结果。谢谢你的详细解释。出于好奇,你认为我应该提交一份关于连接的可能错误报告吗?@Brandon,老实说,我不确定,针对这个问题提出连接问题(如果还没有),看看微软的反应如何=)
<asp:AControlWithATextProperty runat="server" Text="<%$ Resources:ResourceFile, ResourceName %>">
AControlWithATextProperty ctl1 = new AControlWithATextProperty();
ctl1.Text = ResourceExpressionBuilder.EvaluateExpression("ResourceFile, Resourcename");