0
$(obj).replaceWith('<a class="fd-tool-li" onclick="javascript:Like(this, @Model.User.HOCODE.ToString(), @Model.CommentHOCODE.ToString());">' +
'<i class="icon-thumbs-up"></i><span> ' +UserCount+ ' Like this</span>'+
'<a name="Unlike"class="fd-tool-li" onclick="javascript:Unlike(this, @Model.User.HOCODE.ToString(), @Model.CommentHOCODE.ToString());">(Unlike?)</a>' +
'</a>');

为什么我会收到此错误?

4

3 回答 3

1

简化代码以避免引用问题(并提高可读性)。从替换调用中提取 onclick javascript:

$(obj).html('<a class=fd-tool-li onclick="javascript:Like(this, @Model.User.HOCODE.ToString(), @Model.CommentHOCODE.ToString());">' +
    '<i class="icon-thumbs-up"></i><span> ' +1+ ' Like this</span>'+
    '<a name=Unlike class=fd-tool-li>(Unlike?)</a>' +
    '</a>'
);

$(obj).click(function() {
   // things
});

那是假设 @Model 是由某种预编译器定义的,并且不存在于代码中。

于 2012-06-01T11:15:47.090 回答
0

如果这确实是您的代码在到达浏览器时的样子(而不是部分代码在服务器上处理,而某些不同的东西进入浏览器),那么您有一个语法错误@Model.CommentHOCODE.ToString()。你需要解决这个问题。标识符不能以@.

如果相反,它是在服务器端处理并替换为一系列字符,如果它真的是一个字符串,你可能需要在它周围加上引号。

同样,您是否有一个名为 的客户端变量UserCount?因为如果不是,并且如果没有在服务器端处理,那也可能是一个问题。

从根本上讲,您需要查看该代码并确定服务器端发生了什么以及发送到客户端浏览器的结果是什么,然后确保发送到客户端浏览器的内容是有效的。

于 2012-06-01T11:13:58.783 回答
0

在我的例子中,我使用 UUID 来设置一个复杂的变量(一些东西 + UUID),我做的一个简单的解决方案是:

将“-”替换为“”,标识符的唯一性保持有效。

如果您使用 Razor (ASP.net) 而不是这样做:@Model.User.HOCODE.ToString() 尝试使用:@(Model.User.HOCODE.ToString())

问候。

于 2016-03-23T21:57:56.667 回答