如何将CheckBox值返回到VIEW

时间:2012-05-08 09:54:06

标签: asp.net-mvc-3

我有完整的代码及其说明列表,数据库中有24条记录

我使用存储的Proc从DB中进行选择,并将其输出到VIEW()。

用户点击这些复选框,他希望的数量,并将其发布到数据库中的另一个用户表。

我浏览此用户表以获取他已检查过的数据。比如24,他检查了10个复选框。

我希望能够输出所有复选框以及用户检查的相关框。我有数据,其中所有复选框都在VIEWBAG中的列表中。我还有一个用户表,其中包含他在一个单独的列表中检查的数据,在VIEWBAG中,以便我可以在VIEW中访问它。

如何输出所有复选框,还要检查用户使用从控制器传递的VIEWBAG点击的复选框?

下面的代码,只是遍历所有数据并输出所有复选框。我需要确保新的VIEWBAG.USER中的那些用于检查下面的相关方框:

    @foreach (var item in ViewBag.Expertise)
    {
        l_count = l_count + 1;
        l_code = l_code + 1;

        if (l_count == 1)
        {                                                          
            <td class="tdcheckbox">
                <input type="checkbox" name="code@(l_code)" value="@item.expertiseCode" />
                <b>@item.expertiseDesc</b>
            </td> 
            else if (l_count < 3)
            {    
                <td class="tdcheckbox">
                    <input type="checkbox" name="code@(l_code)" value="@item.expertiseCode" />
                    <b>@item.expertiseDesc</b>
                </td>
            }
            else if (l_count == 3)
            {           
                <td class="tdcheckbox">
                    <input type="checkbox" name="code@(l_code)" value="@item.expertiseCode" />
                    <b>@item.expertiseDesc</b>
                </td>                                                            
            }
            else if (l_count % 2 == 0 && l_count == 4)
            {         
                <td class="tdcheckbox">
                    <input type="checkbox" name="code@(l_code)" value="@item.expertiseCode" />
                    <b>@item.expertiseDesc</b>

                @if (@item.expertiseCode == "OTHER")
                {
                    @Html.TextBox("@item.otherExpertise")
                    <br /><font color="red">Comma separate specific expertise</font>
                }
                </td>   

                @:<tr></tr>
                l_count = 0;

1 个答案:

答案 0 :(得分:0)

如果我理解您的问题,您可以执行以下操作。

将此放在您的视图顶部

@{var ids = (List<int>)ViewBag.USERS);

然后,当您循环浏览所有复选框时,您可以执行以下操作。

if (ids != null && ids.Contains(item.expertiseCode))
{
   <input type="checkbox" name="code@(l_code)" value="@item.expertiseCode" checked />
}
else
{
  <input type="checkbox" name="code@(l_code)" value="@item.expertiseCode" />
}