Juscelino, o código não funciona pois você está tentando fazer um novo acesso ao banco de dados a partir de uma página já foi gerada (se você olhar o source da página vai perceber que só a lógica de 'states' foi renderizada). Para contornar isso você vai precisar de uma chamada javascript para o servidor via xml (AJAX) como sugeriu data9. Prototype e JQuery são ambas muito boas para esse tipo de aplicação e simplificam bastante o código. Existem algumas bibliotecas javascript que já fazem esse tipo de coisa (selecao de estados e cidades do brasil), googla um pouquinho você vai encontrar. Caso queira implementar o seu próprio importe o prototype.cs e tente algo do tipo
var params; /* string de parametros que se passa para algum método state_select (que pega o estado e retorna as cidades dele) do servidor, no formato ?atributo=valor&atributo2=valor&... */
new Ajax.Request('state_selected', {
method: 'post',
parameters: params,
onComplete: function(request){
//parser do resultado pra JSON
citiesArray= eval("(" + request.responseText + ")");
addCitiesToSelect(citiesArray); // método que pega um array de cidades e renderiza o html select
}
});
Abraço,
Cassio