Estou tentando enviar uma string de multiplos valores selecionados de uma listBox para a camada Controller e outros campos tb preenchidos, pelo JavaScript, porem os dados do modelo que estão preenchidos na view estão chegando em branco no Controller.
Codigo da View (Campos preenchidos - O de multiplos valores é o Equipamento):
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12">Intervalo de Data</label>
<div class="col-md-6 col-sm-6 col-xs-12">
@Html.TextBoxFor(m => m.IntervaloData, new { @class = "form-control", id = "reportrange", style = "cursor: pointer;" })
<i class="col-md-1 glyphicon glyphicon-calendar fa fa-calendar" style="z-index: 2; top:-23px; left:94%"></i>
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12">Equipamento: <span class="required"></span></label>
<div class="col-md-6 col-sm-6 col-xs-12">
@Html.DropDownListFor(model => model.Equipamento, new RELATORIO.Models.UtilCombobox().Equipamento(), new { @class = "form-control", multiple = "multiple" })
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12">Produto: <span class="required"></span></label>
<div class="col-md-6 col-sm-6 col-xs-12">
@Html.DropDownListFor(model => model.Produto, new RELATORIO.Models.UtilCombobox().Produto(), "Selecionar Todos", new { @class = "form-control" })
</div>
</div>
<div class="form-group" style="text-align: center;">
<button type="submit" class="btn btn-success submit" id="btnGerarRelatorio">Gerar Relatório</button>
</div>
Script na View:
$('#Equipamento').on('change', function () {
$("#hddEquipamentos").val("");
$('#Equipamento option:selected').each(function () {
$("#hddEquipamentos").val($("#hddEquipamentos").val() + $(this).text() + ",");
});
});
$('#btnGerarRelatorio').click(function () { debugger;
var Equipamento1 = {};
Equipamento1 = $("#hddEquipamentos").val().substring(0, ($("#hddEquipamentos").val().length - 1)).split(",");
var equipment = {
Equipamentos: Equipamento1
};
$.ajax({
type: "POST",
url: "Setup",
data: equipment,
dataType: "html",
success: function (response) {
$("#x_content").html(response);
},
failure: function (response) {
alert(response.responseText);
},
error: function (response) {
alert(response.responseText);
}
});
});
Codigo do Controller:
[HttpPost]
[Authorize]
public ActionResult Setup(Filtro filtro)
{
DateTime dtInicial = filtro.getDataInicial();
DateTime dtFinal = filtro.getDataFinal();
BancoDeDados.dcTseOEEDataContext bd = new BancoDeDados.dcTseOEEDataContext();
List<FiltroSetup> listaRelatorio = new List<FiltroSetup>();
...resto do codigo (Ja da pra ver aqui que o Filtro veio vazio
Codigo do Model:
namespace RELATORIO.Models
{
public class Filtro
{
//Os itens que não são public ainda não estão claros no contexto
public decimal ID { get; set; }
public string Planta { get; set; }
public string Item { get; set; }
public string Equipamento { get; set; }
public List<string> Equipamentos { get; set; }
public decimal EquipamentoID { get; set; }
public string Ordem { get; set; }
public decimal OrdemID { get; set; }
public string IntervaloData { get; set; }
Obs: Se eu tirar a referencia do ID no botao submit pra nao chamar o JS, ele passa os valores pra camada Controller sem problema, mas no List q tem multi seleções, passa apenas o primeiro item selecionado.
Agradeço se alguem puder ajudar.