我有一个显示多选复选框的视图页面。这是显示该代码的代码。
@{
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)。提前谢谢。