@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 .
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
@Liam Ho provato a utilizzare WebUtility.HtmlEncode (GetLocalizedString ("stringresourcekey")), ma sto ottenendo lo stesso errore. Lo sto facendo nel posto giusto? – surajnaik
Hai provato a sostituire la parentesi graffa con doppia parentesi graffa? –