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

JavaScript を使用するための C# での引用符のエスケープ

于 2012-08-13T07:05:04.897 に答える
0

UnterminatedはC#ではなく、Javascriptで生成されたコードです。

于 2012-08-13T17:10:12.433 に答える