私はこの問題を多く探し求めましたが、多くの修正がありましたが、私にとってはうまくいきませんでした。 dropdownlist
のデフォルト値を設定したいのですが、私が人を編集したい場合、パートナーのドロップダウンリストは常にデフォルトのテキスト'select a partner'
に行きます。変更を保存するときは、人が持っていたし、再び彼を選択するか、またはパートナーは、単にデータベースにnull
に変更...MVCドロップダウンリストでデフォルト値が選択されていません
私が今持っているコードは次のとおりです。
CONTROLLER:
// GET: /Persoon/Edit/5
[Authorize(Roles = "Beheerder")]
public ActionResult Edit(int id)
{
var persoon = _persoonBll.GetById(id);
if (persoon == null)
{
return RedirectToAction("Index");
}
var persoonViewModel = new PersoonDetailViewModel()
{
PersoonID = persoon.PersoonID,
Voornaam = persoon.Voornaam,
Naam = persoon.Naam,
GSM = persoon.GSM,
Email = persoon.Email,
Telefoon = persoon.Telefoon,
PartnerID = persoon.PartnerID
};
//generate list of partners
var PossiblePartners= _persoonBll.GetPossiblePartnersForPersoon(persoon).ToList();
//generate views for possible partners
IEnumerable<SimplePersoonViewModel> simpleList = CreateSimplepPersoonForList(PossiblePartners);
ViewBag.PossiblePartners= new SelectList(simpleList, "Id", "Fullname");
... more code
}
ここ
は、リストを作るコードです:
private IEnumerable<SimplePersoonViewModel> CreateSimplepPersoonForList(List<Persoon> lstPersons)
{
var lstSimplePersons = new List<SimplePersoonViewModel>();
lstPersons.ToList().ForEach(p => lstSimplePersons.Add(new SimplePersoonViewModel() { Id = p.PersoonID, Fullname = p.FullName }));
return lstSimplePersons;
}
simpleListは私がdropdownlist
を埋めるために作成したリストです。それは完璧に動作します。
HTML:
<div class="form-
<p>
<%: Html.DisplayFor(model => model.Partner.FullName) %>
</p>
<%: Html.DropDownList("PartnerID",
(IEnumerable<SelectListItem>)ViewBag.PossiblePartners,
"--- Choose a partner ---",
new { @class="chosen-select"})%>
<%: Html.ValidationMessageFor(model => model.PartnerID) %>
</div>
私はそれらのいずれかがある、すでに別のものを試してみました:
ViewBag.PossiblePartners= new SelectList(simpleList, "Id", "Fullname", persoon.PartnerId);
でも何でも、私がやるかしてみてください、dropdownlist
は'Choose a partner'
を示し続けて...
はい、私のドロップダウンリストは、すべての_'partners '_...といっしょになります。 –
「persoon」は何ですか? 'persoon.PArtnerId'はsimpleListのIDの1つですか? – Shyju
モデルをビューに渡す前に、コントローラーに 'PartnerID'の値を設定する必要があります(モデルバインディングはプロパティの値にバインドして動作します) –