javascript服务器标签形成不好

时间:2012-02-06 09:05:41

标签: c# javascript jquery asp.net

我希望传递2个值来调用我的脚本,但我没有这样做,它返回我的服务器标签不完善

asp:LinkButton ID="lnkname" runat="server" Text='<%#Eval("movieTitle") %>' Width='500px' 

CommandName="cmdLink" PostBackUrl='~/videotest.aspx' 

OnClientClick="setSessionValue('video','<%#Eval("movieTitle") %>');"

1 个答案:

答案 0 :(得分:4)

试试这样:

OnClientClick='<%# string.Format("setSessionValue(\"video\", {0});", Eval("movieTitle")) %>'

或者甚至更好地确保使用JavaScriptSerializer类正确编码电影标题:

OnClientClick='<%# string.Format("setSessionValue(\"video\", {0});", new JavaScriptSerializer().Serialize(Eval("movieTitle"))) %>'

是的,我同意,这些WebForms是多么可怕的混乱。您可能会将其外部化为代码中的函数:

public string FormatJs(object movieTitle)
{
    return string.Format(
        "setSessionValue(\"video\", {0});", 
        new JavaScriptSerializer().Serialize(movieTitle)
    );
}

然后:

OnClientClick='<%# FormatJs(Eval("movieTitle")) %>'