javascript服务器标签形成不好

我想通过2值来调用我的脚本,但我没有这样做它返回我服务器标签不完善

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

试试这样:

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