2016-01-08 5 views
5

@Html.TextBoxForSystem.FormatException wirft, wenn der lokalisierte Zeichenfolge enthält geschweifte Klammer Zeichen@ Html.TextBoxFor System.FormatException wirft, wenn der lokalisierte Zeichenfolge Zeichen enthält geschweifte Klammer

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 die lokalisierte String unter Verwendung des stringresourcekey erhält. Die lokalisierte Zeichenfolge könnte Zeichen wie geschweifte Klammer, Hash, Apostroph usw. enthalten.

Mein cshtml verwendet die MyProperty wie folgt.

@Html.TextBoxFor(model => model.MyProperty, new { autocomplete = "off" }) 

Wenn ich meine asp.net MVC-Anwendung in Visual Studio die oben Zeile wirft System.FormatException. Ich weiß, dass dies aufgrund des geschweiften Klammercharakters geschieht. Aber wo und wie entkomme ich dem? Wenn ich versuche, zu entkommen, indem ich die geschweifte Klammer durch doppelte geschweifte Klammern in GetLocalizedString ersetze, rendert die Html doppelte geschweifte Klammern statt einzelner.

Update 1

Was ich will, ist, dass, da ich die geschweifte Klammer mit Doppel geschweiften Klammern in GetLocalizedString Verfahren am entweichende (dh in C#) Ich einzelne geschweifte Klammer statt doppelt geschweiften Klammern in HTML angezeigt werden soll .

+1

wahrscheinlich Sie müssen [Htmlencode] (https://msdn.microsoft.com/en-us/library/system.web.httpserverutility.htmlencode (v = vs.110) .aspx) die Zeichenfolge vor dem Verzehr in der Ansicht – Liam

+0

@Liam Ich habe versucht mit WebUtility.HtmlEncode (GetLocalizedString ("StringResourcekey")), aber ich bekomme den gleichen Fehler. Mache ich es am richtigen Ort? – surajnaik

+0

Haben Sie versucht, geschweifte Klammer durch doppelte geschweifte Klammer zu ersetzen? –

Antwort

0

Fügen Sie die HtmlEncode() Ihrer Ansicht nach wie

@Html.TextBoxFor(model => Server.HtmlEncode(model.MyProperty)) 
+0

Das hat auch nicht funktioniert – surajnaik

Verwandte Themen