3

我正在尝试确定是否可以将连接字符串添加到我的本地 .resx 文件之一。这个例子应该澄清:

假设我有一个简单的 ASP.NET 网页,它由 (1) 一个标签组成,其文本是一个重要的关键字 (2) 一个带有必填字段验证的输入和 (3) 一个导致验证发生的按钮:

(lblMyInput)
(txtMyInput)
(rfvMyInput)
(btnSubmit)

现在,在此页面的资源文件中,我们要本地化页面控件的字符串。但是,对于我们的错误消息,我们希望使用输入标签的文字名称。这是我的问题。

PSEUDOCODE: myPage.resx

(1) lblMyInput.Text = "Name"
(2) rfvMyInput.ErrorMessage = "The " + lblMyInput.Text + " field may not be left blank."
(3) btnSubmit.Text = "Submit/Validate"

有没有办法将一个资源文件的字符串这种类型的串联连接到同一个文件中的另一个字符串?

谢谢!

4

2 回答 2

4

一种方法是让你的两个 resx 字符串如此工作:

Resource1: "Hello, this is a {0}" Resource2: "Cookie"

并使用字符串解析器将 Resource2 放入 Resource1。一种标准解决方案,但不是一个很好的解决方案,因为它要求开发人员了解 {0}。如果要进行翻译,还会导致本地化问题。并非所有语言的单词顺序都与英语相同。

于 2010-06-18T20:07:23.200 回答
1

应该使用GetGlobalResourceObject.aspx代码里面或者后面代码里面的方法,顺便保存一下字符串资源

{0} 字段不得留空。

例如,在 .aspx 代码中,您可以尝试:

<asp:RequiredFieldValidator ruant="server" ID="rfvMyInput" ErrorMessage="<%= String.Format((string)GetGlobalResourceObject("GlobalResourceBaseName", "GlobalResourceKey"), lblMyInput.Text) %>" />

或在后面的代码中:

rfvMyInput.ErrorMessage=String.Format((string)GetGlobalResourceObject("GlobalResourceBaseName", "GlobalResourceKey"), lblMyInput.Text);

通过更改GlobalResourceBaseNameGlobalResourceKey字符串,但您使用的那些。

于 2012-06-04T22:16:39.457 回答