没有将选定的下拉列表项返回到控制器

时间:2012-09-05 21:57:25

标签: c# asp.net-mvc-3 asp.net-mvc-4

我正在尝试从模型的下拉列表中获取所选项目。但我总是得到该项目的零值。 我的模特是

public class Configuration
{
    public Color BoderColor { get; set; }
}

public class Color
{
    public long Id { get; set; }
    public string Name { get; set; }
}

我正在绑定这样的下拉列表

<td>
@Html.DropDownListFor(m => m.BoderColor, new SelectList(ViewBag.Colors,  "Id","Name" ))
</td>

ViewBag.Colors的类型为IEnumerable<Color>

这是我的行动方法。

[HttpPost]
    public ActionResult Create(Configuration configItem)
    {
        try
        {
            var color = configItem.BoderColor;
            return RedirectToAction("List");
        }
        catch
        {
            return View();
        }
    }

当我提交我的视图时,我希望所选颜色应该能够通过模型对象中的“BoderColor”访问。有人可以帮我这个。

感谢。

1 个答案:

答案 0 :(得分:1)

在模型中添加一个int属性,表示颜色的选定ID:

public class Configuration
{
    public Color BoderColor { get; set; }
    public int BoderColorId { get; set; }
}

然后在帮助器中使用它

<td>
@Html.DropDownListFor(m => m.BoderColorId, new SelectList(ViewBag.Colors,  "Id","Name" ))
</td>