Salve a tutti ho un problema con l' aggiornamento di una dropdwonlist collegata ad un altra drop down list
la mia view è
<form asp-action="DipendentiModifica" id="FormAggDip" asp-route-id="@Model.Id" method="post" onsubmit="return jQueryAjaxAggDip(this);">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<input type="hidden" asp-for="Id" />
@*Titoli Schede*@
<div class="modal-header">
<div class="tabbable">
<ul class="nav nav-tabs" role="tablist" style="background: #93BA09 ">
<li class="nav-item"><a class="nav-link text-body" href="#tab1" data-toggle="tab">Dati Anagrafici</a></li>
<li class="nav-item"><a class="nav-link text-body" href="#tab2" data-toggle="tab">Dati Contrattuali</a></li>
<li class="nav-item"><a class="nav-link text-body" href="#tab3" data-toggle="tab">Assunzioni</a></li>
</ul>
</div>
</div>
<div class="tab-content">
<div class="tab-pane active" id="tab1">
@*Scheda Generale*@
<div class="tab-pane active" id="tab1">
...........
</div>
@*Dati Contrattuali*@
<div class="tab-pane" id="tab2">
@*Riga 1*@
<div class="row">
<div class="col-sm-5">
<div class="form-group">
<label class="control-label">Cantire di Lavoro</label>
<select class="form-control" id="Cantiere" name="Idcantiere" asp-for="Idcantiere" asp-items="ViewBag.DropCantieri">
</select>
</div>
</div>
<div class="col-sm-5">
<div class="form-group">
<label class="control-label">Comune del Cantiere</label>
<select class="form-control" id="ComuniCantiere" name="Idcomune" asp-for="Idcomune" asp-items="ViewBag.DropComuniCantiere"></select>
</div>
</div>
</div>
</div>
@*Assunzioni*@
<div class="tab-pane" id="tab3">
......
</div>
</div>
</div>
<div class="modal-footer">
@*Pulsante Modifica*@
<div>
<input type="submit" value="Conferma Modifica" form="FormAggDip" class="btn btn-primary" ; return true;" />
</div>
</div>
</form>
il controller è
//GET
public async Task<IActionResult> DipendentiModifica(Guid? Id, Guid SelectedCantiere)
{
if (Id == null || Id == Guid.Empty)
{
return View(new Dipendente());
}
var DipendentiModifica = await context.Dipendenti.FromSqlRaw("SELECT * FROM Dipendenti").FirstOrDefaultAsync(m => m.Id == Id);
if (DipendentiModifica == null)
{
return NotFound();
}
if (SelectedCantiere == Guid.Empty)
{
SelCantiere = DipendentiModifica.Idcantiere.ToString();
}
else
{
DipendentiModifica.Idcantiere = SelectedCantiere;
SelCantiere = SelectedCantiere.ToString();
}
ViewBag.DropCantieri = new SelectList(GetDropCantieri(), "ID", "Denominazione"); // Viewbag
ViewBag.DropComuniCantiere = new SelectList(GetDropComuniCantiere(SelectedCantiere= new Guid(SelCantiere)), "ID", "Denominazione"); // Viewbag
return View(DipendentiModifica);
}
//POPOLO la DropDownList Cantieri
public IEnumerable<DropCantiere> GetDropCantieri()
{
var ListResult = context.DropCantieri.FromSqlRaw("SELECT ID, Denominazione FROM Cantieri").ToList();
return ListResult;
}
//POPOLO la DropDownList Cantieri
public IEnumerable<DropComuneCantiere> GetDropComuniCantiere(Guid SelectedCantiere)
{
if (SelectedCantiere != Guid.Empty)
{
SelCantiere = SelectedCantiere.ToString();
}
Console.WriteLine(SelCantiere);
var ListResult = context.DropComuniCantiere.FromSqlRaw("SELECT dbo.Comuni.ID, dbo.Comuni.Denominazione FROM Cantieri INNER JOIN Comuni ON Cantieri.IDComune = Comuni.ID " +
"WHERE (Cantieri.ID= '"+ SelCantiere +"')").ToList();
return ListResult;
}
e lo script è
$(document).ready(function () {
$("#Cantiere").on("change", function () {
var SelectedCantiere = $("#Cantiere").val();
$.ajax
({
type: 'GET',
url: "GetDropComuniCantiere",
data: { SelectedCantiere: SelectedCantiere },
success: function (res) {
$('#ComuniCantiere').html(); },
error: function (err) { console.log(err) }
}),
function (err) { console.log(err) };
});
});
quindi on change aggiorno il GetdropComuniCantieri e riesco a dare il nuovo valore al SelectdeCantiere nel controller,
ma con il codice
$('#ComuniCantiere').html(); },
Aggiorno la dropdown, ma non carica i dati aggiornati nel controller GetDropComuniCantiere quindi la dropdown mi risulta quindi credo dovrei mettere un reload per la viewbag che tra l altro si trova nella view "Modificadipendenti"...
mi sto incartando??