2016-01-08 10 views
5

@Html.TextBoxFor tiri System.FormatException quando la stringa localizzata contiene caratteri parentesi graffa@ Html.TextBoxFor tiri System.FormatException quando la stringa localizzata contiene caratteri parentesi graffa

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 ottiene la stringa localizzata utilizzando il stringresourcekey. La stringa localizzata può contenere caratteri come parentesi graffa, hash, apostrofo, ecc.

My cshtml utilizza MyProperty come segue.

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

Quando eseguo la mia applicazione asp.net mvc in Visual Studio riga sopra tiri System.FormatException. So che questo sta accadendo a causa del carattere di parentesi graffa. Ma dove e come lo sfuggo? Se provo a scappare sostituendo la parentesi graffa con doppie parentesi graffe in GetLocalizedString, l'Html esegue il rendering di doppie parentesi graffe invece che singole.

Update 1

Quello che voglio è che dal momento che sto sfuggire alla parentesi graffa con doppie parentesi graffe in GetLocalizedString metodo (cioè in C#) voglio visualizzare un'unica parentesi graffa invece di doppie parentesi graffe in HTML .

+1

Probabilmente è necessario [HTMLEncode] (https://msdn.microsoft.com/en-us/library/system.web.httpserverutility.htmlencode (v = vs.110) .aspx) la stringa prima di consumarla nella vista – Liam

+0

@Liam Ho provato a utilizzare WebUtility.HtmlEncode (GetLocalizedString ("stringresourcekey")), ma sto ottenendo lo stesso errore. Lo sto facendo nel posto giusto? – surajnaik

+0

Hai provato a sostituire la parentesi graffa con doppia parentesi graffa? –

risposta

0

Includere il HtmlEncode() nella vista come

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

Anche questo non ha funzionato – surajnaik

Problemi correlati