何らかの理由で、フォームをポストバックすると、ドロップダウンの SelectedId が常に null になります。モデル内のアイテムは null ではなく、SelectedID だけです。ドロップダウン選択を除いて、私のモデルの他のすべての値は問題ありません。これが私のドロップダウンに関連するすべてのコードです。何か案は?ありがとうございました!
PS - ドロップダウンにテンプレートを使用しています。cshtml ビューで @Html.EditorForModel() を使用すると、モデルからドロップダウンが自動的に作成されます。
テンプレート:
@model AFUEMVC.Models.DropDownModels.DropDownViewModel
@Html.DropDownListFor(x => x.SelectedId, new SelectList(Model.Items, "Value", "Text", Model.SelectedId))
モデル:
//Dropdowns
[Display(Name = "Fire Type"),]
public DropDownViewModel FireTypeItems { get; set; }
ビューモデル:
public class DropDownViewModel
{
public string SelectedId { get; set; }
public IEnumerable<SelectListItem> Items { get; set; }
}
編集: ドロップダウンに次の方法で入力しています。
public void GenerateDropDowns(BasicIdentificationModel model)
{
///////////////////////DROP DOWNS
model.FireTypeItems = GetFireTypeItems();
/////////////////////////////////////
}
public DropDownViewModel GetFireTypeItems()
{
DropDownViewModel newdd = new DropDownViewModel();
newdd.Items = new[]
{
new SelectListItem { Value = "1", Text = "IA" },
new SelectListItem { Value = "2", Text = "Extended Attack" },
new SelectListItem { Value = "3", Text = "Large Fire Support" },
};
return newdd;
}
[HttpPost]
public ActionResult BasicIdentificationIndex(BasicIdentificationModel returndata)
{
GenerateDropDowns(returndata);
SaveDB(returndata);
return RedirectToAction("DispatchResponseIndex", "DispatchResponse");
}