由于某些原因,当我回发表单时,我的下拉列表中的SelectedId始终为null。模型中的项不是null,只是SelectedID。除了下拉选择之外,我的模型的所有其他值都很好。这是与我的下拉列表相关的所有代码。有任何想法吗?谢谢!
P.S - 我在下拉列表中使用模板,当我在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");
}
答案 0 :(得分:1)
解决。
@ Html.DropDownListFor(model =&gt; model.State,new SelectList(Enum.GetValues(typeof(MyNamespace.Enums.States))))
我在这里找到了一个帖子:
MVC3 Razor DropDownListFor Enums
到目前为止最简单的方法。
答案 1 :(得分:0)
试试这个(不使用模板):
型号:
public class myDbContext : DbContext
{
...
public DbSet<SelectListItem> SelectListItems{ get; set; }
...
[Display(Name = "Fire Type"),]
public string SelectedID { get; set; }
...
}
在您的视图中:
@Html.DropDownListFor(model => model.SelectedID, new SelectList(new Models.myDbContext().SelectListItems, "Value", "Text"))