چیزی که شما میخوای Cascade Dropdown هست به اینسورت که توی فرم شما ٣ تا dd هست اولی برای نام شرکتهای بیمه، دومی برای شعبه های شرکت بیمه و سومی برای نمایندگان که هنگام Render شدن سفحه dd اولی Bind میشه و dd دومی با انتخاب یک آیتم از اولی و dd سوم هم با انتخاب یک آیتم از دومی bind میشن. حالا با این تفاسیر شما باید از ajax استفاده کنی.
با فرز اینکه dd اول idش InsuranceCompanies باشه و dd دوم idش Branchs باشه و dd سوم idش Agents باشه:
$('#InsuranceCompanies').change(function () {
var insuranceId = $(this).val();
$.ajax({
url: '@Url.Action("GetBranchs")',
type: 'POST',
data: JSON.stringify({ insuranceId: insuranceId }),
dataType: 'json',
processData: false,
contentType: 'application/json; charset=utf-8',
success: function (branchesList) {
if (branchesList != null) {
var branchsDd = $('#Branchs');
branchsDd.empty();
$.each(branchesList, function (index, branch) {
branchsDd.append(
$('<option />')
.attr('value', branch.BranchId)
.text(branch.Name)
);
});
} else {
alert("علمیات با خطا مواجه شد");
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus);
}
});
});
اما GetBranchs
[HttpPost]
public ActionResult GetBranchs(int insuranceId )
{
var branches = from branch in ctx.Branches Where branch.InsuranceId == insuranceId Select new {Name = branch.Name, BranchId = branch.Id};
return Json(branches, JsonRequestBehavior.AllowGet);
}
و همین روال رو هم میتونی برای dd سوم هم تکرار کنی.