0

我正在使用 C# 和 SQL Server 2005 开发一个 ASP .Net MVC 3 应用程序。

我也在使用实体框架和代码优先方法。

我有一个视图“应用程序”,其中包含一个 DropDownList 和一个表。

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

根据 DropDownList 中的选定项,我想在表中以CheckBox的形式在 base 中播放一些值(列表)。

我试过 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>();
    }
}

笔记 :

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

4

1 回答 1

2

对于在复选框中显示用户角色,我做了以下操作,您可以找到自己的方式。不同的是,我在 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 />
                    }
                }
              }
于 2013-05-24T07:41:56.063 回答