如何显示一个复选框的列表根据下拉列表在asp.net MVC和实体框架

本文关键字:asp 下拉列表 net MVC 实体 框架 显示 何显示 复选框 一个 列表 | 更新日期: 2023-09-27 18:15:03

我正在使用c#和SQL Server 2005开发一个asp.net MVC 3应用程序。

我也使用实体框架和代码第一方法。

我有一个视图'Application',它包含一个下拉列表和一个表。

DropDownList的项目正在以列表的形式从基础(Table=Genre)加载。

根据下拉列表中选择的项目,我想在表中以CheckBox的形式在基中播放一些值(列表)。

我尝试了CheckBoxFor,但它不起作用。

这是视图:

 <div>         
         <%:Html.Label("Type :")%><%: Html.DropDownListFor(model => model.SelectedGenre, Model.GenreItems)%>
   </div>
   <table border = "transparent">
    <tr>
        <th>
        </th>
        </tr>
        <% foreach (var item in Model.FaItems) { %>
    <tr>
         <td>
            <%: Html:CheckBoxFor (modelItem => item.Nom_Famille) %>
        </td>

    </tr>
     <% } %>
    </table>

,这是控制器:

[HttpGet]
        public ActionResult Application(Genre genre)
        {
            var vv = new FlowViewModel();
            vv.GenreItems = new SelectList(db.Genres.ToList(), "ID_G", "ID_G");

            if (vv.SelectedGenre == "Famille")
            {
                vv.FaItems = db.Familles.ToList();

            }
            else if (vv.SelectedGenre == "Sous Famille")
            {
                vv.SFItems = db.Sous_Familles.ToList();
            }
            return View(vv);
        }

,这是模型:

public class FlowViewModel
{
    [Key]
    public string IDv { get; set; }
    public List<Famille> FaItems { get; set; }
    public List<Sous_Famille> SFItems { get; set; }
    [NotMapped]
    public SelectList GenreItems { get; set; }
    public string SelectedGenre { get; set; } 
    public FlowViewModel()
    {
        FaItems = new List<Famille>();
        SFItems = new List<Sous_Famille>();
    }
}

注意:

我想选择列表的一些值(检查它们)并记录在基础中,如果你有任何其他建议,除了复选框,这将是非常有用的。谢谢。

如何显示一个复选框的列表根据下拉列表在asp.net MVC和实体框架

对于在复选框中显示用户角色,我做了以下操作,您可以找到自己的方法。不同的是,我在Razor

中做了
             @{
                var roles = (SimpleRoleProvider)Roles.Provider;
                string[] strroles = roles.GetAllRoles();
                string[] userorles = roles.GetRolesForUser(Model.UserName);
                foreach (string strrole in strroles)
                {
                    bool isinrol = false;
                    foreach (string struserroles in userorles)
                    {
                        if (strrole == struserroles)
                        {
                            isinrol = true;
                        }
                    }
                    if(isinrol)
                    {
                        <input type="checkbox" id="roles[]"  name="roles" value="@strrole" checked="checked" /> @strrole <br />
                    }
                    else
                    {
                        <input type="checkbox" id="roles[]" name="roles"  value="@strrole"/> @strrole <br />
                    }
                }
              }