问题
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??
回答1:
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?
回答2:
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())
回答3:
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())
回答4:
In my case I used the bracket for JsonP formatting. JsonP requires a '{' too. By escaping the { like this: '{{', my problem was solved.
回答5:
I have tried as below, and its working.
string.Format(@"ExecuteOrDelayUntilScriptLoaded(function () {{ Your function.
来源:https://stackoverflow.com/questions/7097199/c-sharp-string-format-invalid-input-string