【问题标题】:Passing value to javascript from asp.net从 asp.net 向 javascript 传递值
【发布时间】:2013-02-17 08:02:08
【问题描述】:
<script type="text/javascript">

function abc()
{
    var id = document.getElementById('123');
    var caption= <%=MyProperty %>;
}
</script>

后面的代码:

protected void Page_Load(object sender, EventArgs e)
{
    Page.RegisterStartupScript(Guid.NewGuid().ToString(),"<script language = 'javascript'>abc();</script>");
}

protected int MyProperty
{
    get
    {
        return 123;
    }
}

我需要将字符串值传递给 javascript,使用 int 这个代码可以正常工作。

protected string MyProperty
{
    get
    {
        return "123";
    }
}

当我尝试传递字符串时,此代码不起作用。

【问题讨论】:

  • 删除"&lt;script language = 'javascript'&gt;abc();&lt;/script&gt;" 中不正确的空格。这应该是"&lt;script language='javascript' type="text/javascript"&gt;abc();&lt;/script&gt;"。你也可以使用这个重载来自动生成脚本块:Page.ClientScript.RegisterStartupScriptBlock(typeofyourpage, "somekey", "abc();", true);

标签: javascript asp.net


【解决方案1】:

如果你需要传递一个字符串,你必须指定分隔符 " 或 '

var caption= "<%=MyProperty %>";

var caption= '<%=MyProperty %>';

没有它们,javascript 会将 MyProperty 的字符串值解释为 Javascript 变量的名称。

【讨论】:

  • Steve B : 我知道@user1820649 想尝试受保护的字符串 MyProperty;我可能没有完全理解申请的目的。
  • 我得到 CS0103:当前上下文中不存在名称“MyProperty”
猜你喜欢
  • 2014-12-30
  • 1970-01-01
  • 2018-09-05
  • 2013-07-02
  • 1970-01-01
  • 2013-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多