MVC3 でドロップダウン リストを更新するにはどうすればよいですか。他のビューで埋められた最新のデータを補充したいのですが、ビューをポストバックしたくなく、jquery で実現したいと考えています。次のようなドロップダウンリストがあります。
@Html.DropDownListFor(m => m.Department, Model.Departments)
@Html.ValidationMessageFor(m => m.Departments)
<input type="button" value="Refresh" id="btnrefresh" />
コントローラーのメソッドを呼び出す jquery コードを作成しました。
$("#btnrefresh").click(function () {
var ref = '@Url.Action("RefreshDepartments")';
var model = '@Model.ToJson()';
var data = { empModel: model };
$.getJSON(ref, data, function (result) { alert(result.message); });
return false;
});
そして、コントローラーメソッドは次のとおりです。
public ActionResult RefreshDepartments(EmployeeModel empModel)
{
empModel.Departments = GetDepartments();
empModel.Roles = GetRoles();
return Json(new { message = "Updated successfully"}, JsonRequestBehavior.AllowGet);
}
ポストバックなしで「更新」ボタンをクリックすると、ドロップダウンリストを最新の値で更新するにはどうすればよいですか? モデルをコントローラーに渡して、モデルのプロパティを更新するのは良い考えですか? 他にどのような方法が可能ですか?