C# 为什么我能';是否注册一个客户端脚本字符串块(url)?

C# 为什么我能';是否注册一个客户端脚本字符串块(url)?,c#,javascript,.net,C#,Javascript,.net,代码: 但我(在浏览器控制台上)得到:SyntaxError:identifier在数值文本之后立即启动 事实上,它注册了UrlSocialDefinitivo=http%3a%2f%2fwww.google.it 我错在哪里?如何解决此问题?它缺少字符串周围的引号: string url = "http://www.google.com"; ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "UrlSocialDefin

代码:

但我(在浏览器控制台上)得到:
SyntaxError:identifier在数值文本之后立即启动

事实上,它注册了
UrlSocialDefinitivo=http%3a%2f%2fwww.google.it


我错在哪里?如何解决此问题?

它缺少字符串周围的引号:

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

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

请注意,我不确定您是否必须保留
Server.UrlEncore
调用。它取决于您实际期望的格式。

它缺少字符串周围的引号:

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

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

请注意,我不确定您是否必须保留
Server.UrlEncore
调用。这取决于您实际期望的格式。

您需要将url字符串括在引号中,否则javascript解释器将假定要执行的是javascript(并且失败得很惨)


您需要将url字符串括在引号中,否则javascript解释器将假定要执行的是javascript(并且失败得很惨)