来自数据绑定表达式的奇怪结果

时间:2009-09-01 20:05:06

标签: c# asp.net jquery data-binding

我正在尝试生成此html

<a href="#" class="button" onclick="
    $('#someControl').toggle('blind',
    { easing: 'easeInOutSine'}); return false;">

使用我的数据绑定表达式

<a href="#" class="button" onclick='<%# string.Format(
    "$('#{0}').{1}",
     Eval("Key"),
    ".toggle('blind', { easing: 'easeInOutSine'}); return false"
)%>'>

这不会引发任何错误或任何事情,但是当我使用Firebug检查它时渲染出html这是它从浏览器中显示的内容

<a false="" return="" });="" easeinoutsine="" easing:="" {=""
,="" blind="" )..toggle(="" #plan1="" 
onclick="$(" class="button" href="#">

我尝试过使用和不使用string.Format进行内联的几次尝试,使用我在数据绑定期间调用的代码隐藏中的函数似乎产生了这个乱码输出。我错过了一个逃避或类似的地方吗?

3 个答案:

答案 0 :(得分:1)

当它解析aspx文件时,它会绊倒属性声明中的撇号。这个''“有些东西不是**'就在这里”“有点......你需要解决这个问题。

您可以尝试这样的事情:

<%#String.Format("<a href=\"#\" class=\"button\" onclick=\"$('#{0}').toggle('blind',{easing: 'easeInOutSine'}); return false;\">", Eval("Key"))%>

答案 1 :(得分:0)

尝试:

<a href="#" class="button" onclick='<%# string.Format(
    "$(&apos;#{0}&apos;).toggle(&apos;blind&apos;, { easing: &aposeaseInOutSine&aposbv}); return false",
     Eval("Key"))%>'>

答案 2 :(得分:0)

在顶部代码中,onclick被双引号括起来。在底部代码中,它被单引号包围;正如Blesh所说,这是你焦虑的源头。