Html.DropDownGroupListをリフレッシュするのが難しいです。 私はお互いに依存する2つのドロップダウンを持っています。添付のスクリーンショットにあるように、モデルのドロップダウンリストはグループ化する必要があります。 別のドロップダウンが変更された後にHtml.DropDownGroupListをリフレッシュする方法
私はモデルのドロップダウンがデータで満たされているページで入力すると、それは正確にグループ化されていますが、私は最初のドロップダウンを変更すると、モデルが正しくリフレッシュされていません
。public ActionResult GetModels(string id)
{
if (!string.IsNullOrEmpty(id))
{
int number;
bool result = Int32.TryParse(id, out number);
if (!result)
return Json(null);
var selectedMake = makeRepository.GetMakeByID(number);
var list1 = db.Models.Where(m => m.MakeID == selectedMake.ID).ToList();
List<GroupedSelectListItem> models = new List<GroupedSelectListItem>();
foreach (var items in list1)
{
models.Add(new GroupedSelectListItem
{
Text = items.Name,
Value = items.ID.ToString(),
GroupName = items.GroupName,
GroupKey = items.GroupName
});
}
ViewBag.Alma = models;
return Json(models, JsonRequestBehavior.AllowGet);
}
return Json(null);
}
とビューで:私はこのコードを持っているコントローラで
$.ajax({
type: 'POST',
url: '@Url.Action("GetModels")',
dataType: 'json',
data: { id: $("#makes").val() },
success: function (models) {
if (window.console) {
console.log(JSON.stringify(models))
}
$.each(models, function (i, model) {
$("#models").append
('<optgroup label="'+ model.GroupName + '"><option value="' + model.Value + '">' +
model.Text + '</option></optgroup>'
);
});
}
});
:
@Html.DropDownGroupList("models", ViewBag.Alma as List<GroupedSelectListItem>, "Select Model", new
{
@class = "dropdown-toggle col-md-9 form-control"
})
これは私がドロップダウンを更新しようコードですリフレッシュ後にドロップダウンが表示される方法です。
グループ化はもう機能しません。私は、これが問題であることを知っている:
$("#models").append('<optgroup label="'+ model.GroupName + '"><option value="' + model.Value + '">' + model.Text + '</option></optgroup>');
が、どのようにグループに私のドロップダウンをこのAJAX呼び出しを行うには?私はあまりにも多くのAjax、javascriptの経験がありません。
[モデル]ドロップダウンリストを更新する方法を教えてください。
あなたが使用しているプラグイン( 'DropDownGroupList()'はMVCの一部ではありません) ?そして、2番目のドロップダウンリストを更新するスクリプトは何ですか? –
'GetModels()'メソッドのコントローラメソッドを表示する必要があります。ネストされたコレクションである必要がある正しい構造体のデータを返しません。グループ名のプロパティを含むビューモデルと、オプション値とテキストのプロパティを含むビューモデルのコレクション –
質問を更新し、GetModels()メソッドを追加しました。私はDrodownGroupListのこの例に従った:http://www.jquery2dotnet.com/2014/01/html5-dropdownlist-optgroup-tag-in-mvc.html – Orsi