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

コードを単純化して、引用符の問題を回避します(そして読みやすさを向上させます)。置換呼び出しからonclickjavascriptを抽出します:

$(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 に答える