javascript服务器标记格式不正确

本文关键字:格式 不正确 服务器 javascript | 更新日期: 2023-09-27 18:22:47

我想传递2个值来调用我的脚本,但我没有这样做,它返回给我的服务器标签格式不正确的

asp:LinkButton ID="lnkname" runat="server" Text='<%#Eval("movieTitle") %>' Width='500px' 
CommandName="cmdLink" PostBackUrl='~/videotest.aspx' 
OnClientClick="setSessionValue('video','<%#Eval("movieTitle") %>');"

javascript服务器标记格式不正确

这样尝试:

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")) %>'