C# @当本地化字符串包含大括号字符时,Html.TextBoxFor将引发System.FormatException
C# @当本地化字符串包含大括号字符时,Html.TextBoxFor将引发System.FormatException,c#,asp.net-mvc,string,C#,Asp.net Mvc,String,@Html.TextBoxFor在本地化字符串包含大括号字符时抛出System.FormatException public class MyModel { [Display(ResourceType = typeof(MyModelResourceProvider), Name="MyProperty")] public string MyProperty { get; set; } ... } public class MyModelResourceProvider {
@Html.TextBoxFor
在本地化字符串包含大括号字符时抛出System.FormatException
public class MyModel
{
[Display(ResourceType = typeof(MyModelResourceProvider), Name="MyProperty")]
public string MyProperty { get; set; }
...
}
public class MyModelResourceProvider
{
public static string MyProperty
{
return GetLocalizedString("stringresourcekey");
}
}
GetLocalizedString
使用stringresourcekey
获取本地化字符串。本地化字符串可以包含大括号、哈希、撇号等字符
我的cshtml使用MyProperty,如下所示
@Html.TextBoxFor(model => model.MyProperty, new { autocomplete = "off" })
当我在Visual Studio中运行asp.net mvc应用程序时,上面的一行抛出System.FormatException
。我知道这是因为曲括号的角色。但我在哪里以及如何逃避它呢?如果我试图在GetLocalizedString
中用双大括号替换大括号来转义,Html将呈现双大括号而不是单大括号
更新1
我想要的是,因为我在
GetLocalizedString
方法(即在C#)中使用双大括号来转义大括号,所以我希望在HTML中显示单大括号而不是双大括号。在视图中包括HtmlEncode()
@Html.TextBoxFor(model => Server.HtmlEncode(model.MyProperty))
在中使用字符串之前,可能需要先删除该字符串view@Liam我尝试使用WebUtility.HtmlEncode(GetLocalizedString(“stringresourcekey”)),但是我得到了相同的错误。我是在正确的地方做的吗?你试过用双大括号替换大括号吗?@GeneR是的,如果我用双大括号替换大括号,则不会引发异常,但Html会呈现双大括号而不是单大括号。使用反斜杠转义大括号?