0

由于某种原因,当我发回表单时,下拉列表中的 SelectedId 始终为空。模型中的项目不为空,只是 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");
    }
4

2 回答 2

1

解决了。

@Html.DropDownListFor(model => model.State, new SelectList(Enum.GetValues(typeof(MyNamespace.Enums.States))))

我在这里找到了一个帖子:

MVC3 Razor DropDownListFor Enums

到目前为止,这是最简单的方法。

于 2013-05-29T20:12:44.867 回答
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"))                
于 2013-05-29T19:06:44.717 回答