0

asp.net mvc 4 Web アプリケーションには、選択したユーザーにメールを送信するためにチェックボックス付きのカスタム列を追加した剣道グリッド (ExternalUserList という名前) があります。私がしていることは、ユーザーのデータベース ID を json 形式で mvc コントローラーに送信することです。

これは私のJavaScriptコードです:

<script type="text/javascript">
    function sendMailToExternalUsers() {
        var ids = [];
        var proId;
        var checkBox = $('#ExternalUsersList > table > tbody > tr td:nth-child(2) > input');

        checkBox.each(function (index) {
            var $input = $(this);

            if ($input.is(':checked')) {
                var count = index + 1;
                proId = $('#ExternalUsersList > table > tbody > tr:nth-child(' + count + ') td:first-child');
                ids.push(proId[0].innerText);
            }
        })

        var postData = JSON.stringify(ids);

        $.ajax({
            type: "POST",
            url: "/ExternalUser/SendEmailToExternalUsers/",
            data: postData,
            dataType: "json",
            contentType: "application/json",
            traditional: true
        });
    }
</script>

ここに私のコントローラーがあります:

[HttpPost]
public EmptyResult SendEmailToExternalUsers(List<string> ids)
{
   //Here i do some processing
}

上記のコードはすべて Internet Explorer と Chrome では問題なく動作しますが、Firefox では動作しません。実際、剣道グリッドからたとえば 3 人のユーザーを選択した場合、ビジュアル スタジオ デバッガーは、IDList<string>に 3 つの要素があるが、値が空であることを示します。IE と Chrome の値は完全に正しいです。

それで、それは間違っていますか?

4

1 に答える 1

0

おそらく、クライアント側のコードに関連するものです。多分この線だと思います

ids.push(proId[0].innerText);

Firebug でデバッグして、何が返されるかを確認してください。jQuery のメソッドを使用し.text()たり、.html()関心のある内容に応じて使用したりすることもできます。

于 2013-03-29T07:48:25.067 に答える