1

在此处输入图像描述

调用函数时出现此错误

 static public void DisplayAJAXMessage(Control page, string msg)
{
    string myScript = String.Format("alert('{0}');", msg);

    ScriptManager.RegisterStartupScript(page, page.GetType(), "MyScript", myScript, true);
}

调用这个函数:

    string sampledata = "Name                  :zzzzzzzzzzzzzzzz<br>Phone         :00000000000000<br>Country               :India";
        string sample = sampledata.Replace("<br>", "\n");


    MsgBox.DisplayAJAXMessage(this, sample);

我需要在下一行显示姓名、电话和国家。

4

4 回答 4

9

未终止的字符串常量意味着您忘记关闭字符串。您不能有跨越多行的警报。当脚本输出到浏览器时,它实际上包括新行......而不是 javascript 期望的“\n”。这意味着,您的警报呼叫将跨越多行......像这样:

alert('Name                  :zzzzzzzzzzzzzzzz
       Phone         :00000000000000
       Country               :India');

..这不起作用,并且会产生您所看到的错误。尝试使用双反斜杠来转义反斜杠:

string sample = sampledata.Replace("<br>", "\\n");
于 2012-08-13T07:06:08.530 回答
3

"\n"是 C# 的换行符,即您的 js 包含:

something('...blah foo
bar ...');

真正想要的是js中的换行符:

something('...blah foo\nbar ...');

你可以这样做:

string sample = sampledata.Replace("<br>", "\\n");

或者:

string sample = sampledata.Replace("<br>", @"\n");
于 2012-08-13T07:05:55.237 回答
1

您需要对您的字符串进行转义/编码JavaScript

C# 中的转义引号用于 javascript 消费

于 2012-08-13T07:05:04.897 回答
0

您的未终止不在 C# 中,而是在 Javascript 生成的代码中。

于 2012-08-13T17:10:12.433 回答