I have a MVC3 HtmlHelper extension like this:
public static MvcHtmlString ShowInfoBar(this HtmlHelper helper, string message, InfoMessageType messageType)
{
return MvcHtmlString.Create(String.Format(@"<script type=""text/javascript"">$(document).ready(function () { gtg.core.showInfoBar('{0}', '{1}'}; );</script>", message, messageType.ToString().ToLower()));
}
The value of message
is "The product "Product Name" was saved successfully."
The value of messageType
is info
.
It keeps saying Input string was not in the correct format.
I am stuck??
On every brace that isn't a token you must double - so
function() {{
Etc
Also - consider XSS here - is message
escaped correctly for inserting into JavaScript?
Escape your squiggly brackets {{ }} in the format string
String.Format(@"<script type=""text/javascript"">$(document).ready(function () {{ gtg.core.showInfoBar('{0}', '{1}'); }});</script>", message, messageType.ToString().ToLower())
You need to escape the curly braces:
{{
and }}
String.Format(@"<script type=""text/javascript"">$(document).ready(function () {{ gtg.core.showInfoBar('{0}', '{1}'}}; );</script>",
message, messageType.ToString().ToLower())
In my case I used the bracket for JsonP formatting. JsonP requires a '{' too. By escaping the { like this: '{{', my problem was solved.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With