String.Format HTML

时间:2014-01-15 18:51:41

标签: c# html string.format

string.format在下面的html上创建一个非常奇怪的结果。我相信它与内联if块有关,但我还没想到它。请帮忙!

String.Format(@"<input type='text' 
                       name='PostalCode' 
                       id='PostalCode' 
                       onfocus='if(this.value == '{0}') 
                                {{ this.value = ''; }}' 
                       value='{1}' 
                       class='enter-postal' />", 
              "Enter Postal Code", "Enter Postal Code")

3 个答案:

答案 0 :(得分:3)

我看到的并不奇怪,所以不知道你的期望,我不确定问题是什么。

我注意到onfocus='if(this.value == '{0}') {{ this.value = ''; }}'中的一个错误,因为你在属性中有单引号,而且JS也没有用。尝试:

String.Format(@"<input type='text' name='PostalCode' id='PostalCode' onfocus=""if(this.value == '{0}') {{ this.value = ''; }}"" value='{1}' class='enter-postal' />",
"Enter Postal Code", "Enter Postal Code")

使用变量而不是文字,您还需要执行.Replace("'", "\\'"),这样您就不会因为数据中的撇号而导致相同的问题。

答案 1 :(得分:1)

onFocus属性中,使用转义双引号。

String.Format(@"<input type='text' 
                       name='PostalCode' 
                       id='PostalCode' 
                       onfocus=\"if(this.value == '{0}') 
                            {{ this.value = ''; }}\" value='{1}' 
                       class='enter-postal' />", 
              "Enter Postal Code", "Enter Postal Code")

答案 2 :(得分:1)

在这里试试这个:

String.Format(@"<input type='text' name='PostalCode' id='PostalCode' onfocus='if(this.value == ""{0}"") {{ this.value = """"; }}' value='{1}' class='enter-postal' />", "Enter Postal Code", "Enter Postal Code")