モデルを含むビューを返す単純なコントローラーを備えた Mvc アプリケーション。ビューを作成します。大量のドロップダウンリストがあるため、いくつかのビューバッグ(13)があります。
ビューでは、editortemplates を使用して、モデルから複雑なオブジェクトを表示します。
問題は、エディター テンプレートに空のビューバッグがいくつかあることです。
コントローラーでデバッガーを停止させると、ビューバッグはすべて正しく埋められます。
ビューでデバッガーを停止させると、それらのいくつかが空であることがわかります。
この問題の原因は何ですか?
コントローラー:
public ActionResult SetNewInputForm(InitializeNewInputViewModel model)
{
var Input = new Input(model.AantalPrimairen,model.AantalSecundairen);
ViewBags();
return View(Input);
}
private void ViewBags()
{
ViewBag.Blikvorm = Enum.GetNames(typeof(Common.BlikVorm)).ToList();
ViewBag.Kwaliteit = Database.Kwaliteit.ToList();
ViewBag.BlikFabrikanten = Database.BlikFabrikant.ToList();
ViewBag.Walserijen = Database.Walserij.ToList();
ViewBag.BlikMontage = new SelectList(Database.KernMontage.ToList(), "Id", "KernMontageNaam");
ViewBag.SchakelWijze = Enum.GetNames(typeof(Common.SchakelWijze)).ToList();
ViewBag.AantalGaten = Enum.GetNames(typeof(Common.AantalGaten)).ToList();
ViewBag.DiameterGaten = Database.DiameterGat.ToList();
ViewBag.BlikFormaat = Database.BlikFormaat.ToList();
ViewBag.KernMontage = Database.KernMontage.ToList();
ViewBag.KokerFabrikanten = Database.KokerFabrikant.ToList();
}
私の見解の一部
@model DomainClasses.Input
@using (Html.BeginForm("Create", "Input", FormMethod.Post))
{
<div class="containter">
<div class="row">
<div class="col-lg-4 ">
<div class="form-group">
<strong> @Html.DevExpress().LabelFor(t => t.SchakelwijzePrimair).GetHtml()</strong>
@Html.DevExpress().ComboBoxFor(t => t.SchakelwijzePrimair,
settings =>
{
settings.Name = "SchakelwijzePrimair";
}).BindList(ViewBag.Schakelwijze).GetHtml()
</div>
@Html.EditorFor(m => m.Primairen, Model.Primairen);
</div>
<div class="col-lg-8">
@Html.EditorFor(m => m.Secundairen, Model.Secundairen);
</div>
</div>
</div>
<div class="containter">
<div style="padding:1em;
margin:10px 5px;
border-style:inset;
background-color: aquamarine;
overflow:auto">
@Html.EditorFor(m => m.BlikAfmeting, Model.BlikAfmeting)
</div>
</div>
私のエディターテンプレートの一部:
@model DomainClasses.BlikAfmeting
<h4 class="modal-title"> Blik Afmetingen</h4>
<div class="col-lg-2">
<div class="form-group">
@Html.DevExpress().Label(settings =>
{
settings.Name = "ChooseBlikAfmetingComboLabel";
settings.Text = "Blikformaten";
}).GetHtml()
@Html.DevExpress().ComboBox(
settings =>
{
settings.Name = "ChooseBlikAfmetingCombo";
settings.Properties.DropDownStyle = DropDownStyle.DropDownList;
settings.Properties.CallbackPageSize = 15;
settings.Properties.IncrementalFilteringMode = IncrementalFilteringMode.StartsWith;
settings.Properties.TextFormatString = "{0} {1}";
settings.Properties.ValueField = "Id";
settings.Properties.NullText = "Kies BlikFormaat";
settings.Properties.ValueType = typeof(string);
//settings.Properties.ClientSideEvents.ValueChanged = "function(s, e) { GetBlikAfmetingTabel(s,e); }";
settings.Properties.Columns.Add("BlikVorm", "Blik Vorm", 90);
settings.Properties.Columns.Add("HoofdAfmeting", "Hoofd Afmeting", 90);
}
).BindList(ViewBag.BlikFormaat).GetHtml()
Viewbag.Blikformaat は常に空です Viewbag.BlikVorm は、3 つの editorTemplates のうち 2 つで空です。