Hi All,
In my view I have:
Code:
<tr>
<td>@Html.LabelFor(model => model.Group, null, null, null)</td>
<td>@Html.EditorFor(model => model.Group)</td>
<td> </td>
</tr>
<tr>
<td>@Html.LabelFor(x => x.VehicleTypeId, null, null, null)</td>
<td>@Html.DropDownListFor(x => x.VehicleTypeId, new SelectList(Model.VehicleTypes, "Id", "Description"), "-- Select --")</td>
<td> </td>
</tr>
when the view initially shows my dropdown is empty. when the user places a value in group then this will cause a partial update to happen:
Code:
$("#Group").change(function () {
partialUpdate();
});
function partialUpdate() {
var polId = $("#PolicyZoneID").attr("value");
var secId = $("#SectionID").attr("value");
var riskId = $("#RiskID").attr("value");
var riskTypeId = $("#RiskTypeID").attr("value");
var group = $("#Group").attr("value");
var jSonData = '{ "policyZoneId" : "' + polId +
'","sectionId" : "' + secId +
'","riskId" : "' + riskId +
'","riskTypeId" : "' + riskTypeId +
'","group" : "' + group + '"}';
$.ajax({
url: window.rootDir + 'RoadRisk/PrivateCarsReload',
type: 'POST',
data: jSonData,
dataType: 'json',
contentType: 'application/json; charset=utf-8',
success: function (data) {
//remove existing contents from the dropdown
//and update with new contents.
},
error: function (data) {
alert(data);
}
});
}
my controller has:
Code:
[HttpPost]
public JsonResult PrivateCarsReload(int policyZoneId, int sectionId, int riskId, int riskTypeId, int group)
{
return Json(RoadRiskService.UpdatePrivateCarsFromAjax(policyZoneId, sectionId, riskId, riskTypeId, group), JsonRequestBehavior.DenyGet);
}
this will return a struct in the form:
Code:
public struct PrivateCarsRiskJsonResults
{
public IEnumerable<PointsSelectListItemWrapper> VehicleTypes;
}
where:
Code:
public class PointsSelectListItemWrapper
{
public Int64 Id { get; set; }
public string Description { get; set; }
public Int32 Points { get; set; }
public bool Selected { get; set; }
public Int32? MinGroup { get; set; }
public Int32? MaxGroup { get; set; }
}
How do I populate my dropdown list and how do I keep it in sync on the model? Thanks