Dependent Dropdown Within Cwidget

I am trying to create a widget with a dependent dropdown box.

Following tutorial:, I am faced with the following problem with the ajax part:

echo CHtml::dropDownList('metal_id', 'id', $metals, array(

    'ajax' => array(

        'type' => 'POST', //request type

        'url' => $this->getController()->createUrl('currentController/dynamicProducts'),

        'update' => '#product_id',



using CController is not possible, because I am inside a CWidget, not CController.

I can however use something like:

'url' => $this->getController()->createUrl('currentController/dynamicProducts')

However it still does not solve my problem because the URL created will not refer to the WidgetController.

Question 1: How can I get my ajax to call a method from within my CWidget?

Question 2: I am using a widget because I want this form to be available on several pages. Should I be creating a partial view instead??? If so, how do I pass the data required from another controller into the partial view?

Question 3: Should I be creating an actual controller inside the Controllers folder which echos out the dynamicProducts options?

Workaround Solution: I have got this working by creating separate AjaxController.php within the controllers folder which simply echos the product option values, however this in my opinion is a very messy solution.

Anybody have any ideas???