Estou criando um pequeno aplicativo para me ensinar o ASP.NET MVC e JQuery, e uma das páginas é uma lista de itens nos quais alguns podem ser selecionados. Gostaria de pressionar um botão e enviar uma lista (ou algo equivalente) ao meu controlador contendo os IDs dos itens que foram selecionados, usando a função Post do JQuery.
Consegui obter uma matriz com os IDs dos elementos que foram selecionados e agora quero publicá-la. Uma maneira de fazer isso é ter um formulário fictício na minha página, com um valor oculto, e depois definir o valor oculto com os itens selecionados, e postar esse formulário; isso parece sujo, no entanto.
Existe uma maneira mais limpa de conseguir isso, enviando a matriz diretamente para o controlador? Eu tentei algumas coisas diferentes, mas parece que o controlador não pode mapear os dados que está recebendo. Aqui está o código até agora:
function generateList(selectedValues) {
var s = {
values: selectedValues //selectedValues is an array of string
};
$.post("/Home/GenerateList", $.toJSON(s), function() { alert("back") }, "json");
}
E então meu controlador fica assim
public ActionResult GenerateList(List<string> values)
{
//do something
}
Tudo o que consegui obter é um "nulo" no parâmetro do controlador ...
Alguma dica?
Request["values[]"]