selectlistitem的select属性始终为false

时间:2017-08-21 11:46:11

标签: javascript c# html asp.net-mvc checkbox

我有一个显示多选复选框的视图页面。这是显示该代码的代码。

@{                                                                                                
    foreach (SelectListItem item in Model.VendorCategoryList)                                                                                                
    {                                                                                                    
        string name = item.Text;                                                                                                    
        bool chkResult = item.Selected;//Model.VendorCategoryList;                                                                                                    
        <tr class="VendorCategoryClassSave">                                                                                                        
            <td style="width: 4%;text-align:right;padding-right:15px;">                                                                                                            
                <label>                                                                                                                
                    @Html.CheckBox("chkVendorCategoryDetailId_" + item.Value, chkResult, new { @class = "chkVendorCategoryDetailClass" })                                                                                                            
                </label>                                                                                                        
            </td>                                                                                                        
            <td style="width: 10%;">                                                                                                            
                <label>@Html.Label(name)</label>                                                                                                        
            </td>                                                                                                    
        </tr>                                                                                                
    }
}

控制器

public ActionResult NewVendor(int custid = 0)
{
    List<SelectListItem> VendorCategory = _commonRepository.VendorCategory
        .AsEnumerable().Where(x => x.status == 1).Select(x => new SelectListItem
        {
            Text = x.catename,
            Value = x.cateid.ToString(),
            Selected=false
        }).ToList();
    foreach(SelectListItem item in VendorCategory)
    {
        item.Selected = setSelectedcategory(Convert.ToInt32(item.Value), custid);
    }
    var model = new HomeViewModel
    {
        VendorCategoryList = new SelectList(VendorCategory, "Value", "Text", "Selected")
    };
    return View("../Masters/View_Vendor", model);
}

模型

public HomeViewModel
{
    public SelectList VendorCategoryList { get; set; }
}

即使我设置&#34; true&#34;对于selectlistitem中的Selected属性,它始终显示为false。请参阅下面的图片pic1。在pic1中,它清楚地表明所选属性是&#34; true&#34;。但是当我在foreach循环中从模型中选择每个项目时,它表示所选属性为&#34; false&#34;。见图2。 Pic2。你能帮我解决一下我做错了什么。

这只发生在foreach循环中。在循环的外侧,它显示正确的值(true)。提前谢谢。

0 个答案:

没有答案