我正在使用checkboxlist帮助器并动态绑定它..现在我想保持复选框的状态吗?
public ActionResult Step3()
{
CustomerQuestion _Cust = new CustomerQuestion();
//Retrieve the answer from database by siteid
var Questions = QAService.GetAllAnswer(1);
var Questionscount = QAService.GetAllAnswer(1).Count();
_Cust.Question18 = Questions.Where(s => s.QuestionID == 18);
return View(_Cust);
}
这是视图
<%= Html.CheckBoxList("Question18", new SelectList(Model.Question18, "AnswerID", "Answer"))%>
答案 0 :(得分:0)
显示代码,以便我们为您提供帮助。
我想你想在返回视图时保留复选框,并且有formvalidation。
你是否在视图中返回了你的对象?
修改强>
您无法在SelectList中选择多个值。更好的是使用List<SelectListItem>
我使用此代码。
public static IList<SelectListItem> ToSelectList<T>(this IEnumerable<T> itemsToMap, Func<T, string> textProperty, Func<T, string> valueProperty, Predicate<T> isSelected) {
var result = new List<SelectListItem>();
foreach (var item in itemsToMap) {
result.Add(new SelectListItem {
Value = valueProperty(item),
Text = textProperty(item),
Selected = isSelected(item)
});
}
return result;
}
然后
ViewData["test"]= _Cust.Question18.ToSelectList(q=>q.Answer, q=>q.AnswerID, q=>someListOfAnswerIDS.Contains(q.AnswerID));
<%= Html.CheckBoxList("Question18", ViewData["test"] as List<SelectListItem>)%>
答案 1 :(得分:-1)
public ActionResult Step3() { CustomerQuestion _Cust = new CustomerQuestion(); //通过siteid从数据库中检索答案 var Questions = QAService.GetAllAnswer(1); var Questionscount = QAService.GetAllAnswer(1).Count(); _Cust.Question18 = Questions.Where(s =&gt; s.QuestionID == 18); return View(_Cust); }
这是视图
我绑定了此列表中数据库中的所有语言。 如果此页面上有一些验证错误,我想维持检查状态 复选框