CGridView checkbox somente atualizar o model com ajax

ola pessoal, sou novato e nao estou conseguindo fazer um checkbox dentro de um CGridView atualizar minha tabela

minha view esta carregando certinho o checkbox marcando-o qdo esta true




<?php $this->widget('zii.widgets.grid.CGridView', ['dataProvider'=>$dataProvider,

'columns'=>array(

array(

            'type'=>'raw',            

            'name'=>'permite_credito_icms', 

            'value'=>'CHtml::checkBox("pci_".$data->idfornecedor,$data->permite_credito_icms, array(

                "ajax" => array(

                    "type" => "POST", 

                    "url" => "index.php?r=fornecedor/updatepci",

                    "dataType" => "text",

                    "data" => array(

                        "idfornecedor" => $data->idfornecedor,

                        "checked"      => $data->permite_credito_icms,

                    ),

                ),

            ))',

            

            'htmlOptions'=>array(

                'width'=>'5%',

                'align'=>'center',

            ),

        ),    




e no meu controller:




public function actionUpdatepci() {

            $tmp = Fornecedor::model()->findByPk($_POST[$idfornecedor]);

            if ($tmp === null) {

                throw new CHttpException(404, 'The requested page does not exist.');

                return $tmp;

            } else {

                $tmp->permite_credito_icms =  ($_POST[$checked] == 1?'X':'');

                $tmp->save();

            }    

        }






qdo clico no checkbox, no firebug da o erro de q nao encontrou o site:




"url" => "index.php?r=fornecedor/updatepci"



eu nao poderia ter uma função dentro do Model para atualizar minha tabela ? é pq usando Ajax eu forçosamente teria q colocar no Controller ?

grato qq ajuda