如何在模型中存储多个复选框值并在mvc4中在视图和控制器中呈现它们?

时间:2016-04-30 09:25:42

标签: c# asp.net-mvc entity-framework razor asp.net-mvc-5

我在我的应用程序中使用ASP.NET MVC5。 我想在我的视图中使用复选框显示员工已知的语言(具有相同名称的复选框)。为此,如何编写我的模型,从控制器传递它们并在视图中显示它们?

我将这些值存储在枚举

old

如果我必须将它们存储在DB中的表中,这是可以的。

1 个答案:

答案 0 :(得分:1)

您可以使用CheckBoxListFor帮助程序:

 @Html.CheckBoxListFor(model => model.SelectedOptions, Model.AllOptions)

你的模型看起来像这样:

public class MyModel {

    // This property contains the available options
    public SelectList AllOptions { get; set; }

    // This property contains the selected options
    public IEnumerable<string> SelectedOptions { get; set; }

    public MyModel() {
        AllOptions = new SelectList(
            new[] { "Option1", "Option2", "Option3" });

        SelectedOptions = new[] { "Option1" };
    }
}

在控制器中,您只需将模型传递给视图:

[HttpGet]
[ActionName("Index")]
public ActionResult Index()
{
     var model = new MyModel();
     return View(model);
}

您可以根据需要更改AllOptions和SelectedOptions属性(只需从MyModel的构造函数中删除代码并将其放在控制器类中)。

有关详细信息,请查看此处,有关于如何使用枚举的说明:CheckBoxList for Enum types MVC Razor