我有一个像这样的MVC3 HtmlHelper扩展名:
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()));
}
message
的值为"The product "Product Name" was saved successfully."
messageType
的值为info
。
一直说Input string was not in the correct format.
我被困了?
答案 0 :(得分:20)
在每个不是代币的支撑上,你必须加倍 - 所以
function() {{
等
另外 - 在这里考虑XSS - message
是否正确转义以插入JavaScript?
答案 1 :(得分:10)
以格式字符串
转义您的波浪括号{{}}String.Format(@"<script type=""text/javascript"">$(document).ready(function () {{ gtg.core.showInfoBar('{0}', '{1}'); }});</script>", message, messageType.ToString().ToLower())
答案 2 :(得分:5)
你需要逃避花括号:
{{
和}}
String.Format(@"<script type=""text/javascript"">$(document).ready(function () {{ gtg.core.showInfoBar('{0}', '{1}'}}; );</script>",
message, messageType.ToString().ToLower())
答案 3 :(得分:1)
在我的情况下,我使用括号进行JsonP格式化。 JsonP也需要'{'。通过逃避{像这样:'{{',我的问题已经解决了。
答案 4 :(得分:0)
我尝试过如下,并且正在努力。
string.Format(@"ExecuteOrDelayUntilScriptLoaded(function () {{ Your function.