我加载了一个像这样的js变量:
var message = '<%= CAnunturi.CPLATA_RAMBURS_INFO %>';
我把静态字符串CPLATA_RAMBURS_INFO放在哪里:
public static string CPLATA_RAMBURS_INFO = "test";
我在这种方法中使用得非常好。
<script type="text/javascript">
var categoryParam = '<%= CQueryStringParameters.CATEGORY %>';
var subcategoryParam = '<%= CQueryStringParameters.SUBCATEGORY1_ID %>';
var message = '<%= CAnunturi.CPLATA_RAMBURS_INFO %>';
function timedInfo(header) {
$.jGrowl(message, { header: header });
};
</script>
所以消息出现。
我不是,为什么,iso“iso”,如果我从静态方法中获取值, 使用消息js var不再成功(消息不再出现)。
public static string CPLATA_RAMBURS_INFO = getRambursInfo();
public static string getRambursInfo()
{
return System.IO.File.ReadAllText(PathsUtil.getRambursPlataFilePath());
}
编辑: 源代码:
<script type="text/javascript">
var categoryParam = 'category';
var subcategoryParam = 'subcategory1Id';
var message = 'Lorem ipsum dolor sit amet, eu curabitur venenatis
viverra pellentesque tortor tempor, n est est suspendisse,aenean vestibulum, 在dictum nulla暂停eget metus aenean。 在luctus,neque porttitor suscipit nibh,aenean ut,commodo velit leo volutpat ullamcorper。 “;
function timedInfo(header) {
$.jGrowl(message, { header: header });
};
</script>
答案 0 :(得分:2)
您的文件包含特殊字符(可能是换行符或'
),导致呈现的Javascript包含语法错误。
您需要使用Anti-XSS Toolkit转义字符串,如下所示:
var message = '<%= AntiXss.JavaScriptEncode(CAnunturi.CPLATA_RAMBURS_INFO) %>';
编辑:如果AntiXss无效,请尝试以下功能:
public static void QuoteString(this string value, StringBuilder b) {
if (String.IsNullOrEmpty(value))
return "";
var b = new StringBuilder();
int startIndex = 0;
int count = 0;
for (int i = 0; i < value.Length; i++) {
char c = value[i];
// Append the unhandled characters (that do not require special treament)
// to the string builder when special characters are detected.
if (c == '\r' || c == '\t' || c == '\"' || c == '\'' || c == '<' || c == '>' ||
c == '\\' || c == '\n' || c == '\b' || c == '\f' || c < ' ') {
if (b == null) {
b = new StringBuilder(value.Length + 5);
}
if (count > 0) {
b.Append(value, startIndex, count);
}
startIndex = i + 1;
count = 0;
}
switch (c) {
case '\r':
b.Append("\\r");
break;
case '\t':
b.Append("\\t");
break;
case '\"':
b.Append("\\\"");
break;
case '\\':
b.Append("\\\\");
break;
case '\n':
b.Append("\\n");
break;
case '\b':
b.Append("\\b");
break;
case '\f':
b.Append("\\f");
break;
case '\'':
case '>':
case '<':
AppendCharAsUnicode(b, c);
break;
default:
if (c < ' ') {
AppendCharAsUnicode(b, c);
} else {
count++;
}
break;
}
}
if (b == null) {
b.Append(value);
}
if (count > 0) {
b.Append(value, startIndex, count);
}
return b.ToString();
}
答案 1 :(得分:0)
尝试在Page_Load()函数中为变量赋值。我认为它会起作用。