0

コード:

string url = "http://www.google.com";
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "UrlSocialDefinitivo", "var UrlSocialDefinitivo=" + Server.UrlEncode(url) + ";", true);

しかし、私は(ブラウザコンソールで)取得します:SyntaxError: identifier starts immediately after numeric literal

実際に登録しますUrlSocialDefinitivo=http%3a%2f%2fwww.google.it;

私はどこが間違っていますか?どうすればこの問題を解決できますか?

4

2 に答える 2

3

文字列の周りの引用符がありません:

string url = "http://www.google.com";
ScriptManager.RegisterClientScriptBlock(
    this, 
    this.GetType(), 
    "UrlSocialDefinitivo", 
    "var UrlSocialDefinitivo=\"" + Server.UrlEncode(url) + "\";",
    true
    );

それは生成されます:

UrlSocialDefinitivo="http%3a%2f%2fwww.google.it";

Server.UrlEncore通話を続ける必要があるかどうかわからないことに注意してください。それはあなたが実際に期待しているフォーマットに依存します。

于 2012-10-11T13:04:31.027 に答える
2

URL文字列を引用符で囲む必要があります。そうしないと、javascriptインタープリターは、実行されるjavascriptであると想定します(そして惨めに失敗します)。

ScriptManager.RegisterClientScriptBlock(this, this.GetType(),
    "UrlSocialDefinitivo", 
    "var UrlSocialDefinitivo='" + Server.UrlEncode(url) + "';", true);
// quotes               here ^                    and here ^
于 2012-10-11T13:09:00.190 に答える