Я все еще экспериментировать, но это, кажется, ладить со связующим по умолчанию и сохраняется на выбор пользователя после пост .. Скрытые поля, действительно?? .. будет ли это летать в html5? Это чувствует себя сумасшедшим, но я предпочел бы сделать это, чем ударилась дб для выпадающего списка и флажок перечислены только потому, что ModelState.IsValid ложна ..
public static MvcHtmlString CheckBoxList(this HtmlHelper htmlHelper, List<SelectListItem> list, string ModelCollectionName)
{
var sb = new StringBuilder();
if (list != null)
{
int i = 0;
foreach (var l in list)
{
string collectionNameIndex = String.Format("{0}[{1}]", ModelCollectionName, i);
var hiddenName = new TagBuilder("input");
hiddenName.Attributes.Add(new KeyValuePair<string, string>("type", "hidden"));
hiddenName.Attributes.Add(new KeyValuePair<string, string>("name", String.Format("{0}.{1}", collectionNameIndex, "Text")));
hiddenName.Attributes.Add(new KeyValuePair<string, string>("value", l.Text));
var hiddenValue = new TagBuilder("input");
hiddenValue.Attributes.Add(new KeyValuePair<string, string>("type", "hidden"));
hiddenValue.Attributes.Add(new KeyValuePair<string, string>("name", String.Format("{0}.{1}", collectionNameIndex, "Value")));
hiddenValue.Attributes.Add(new KeyValuePair<string, string>("value", l.Value));
var checkBoxTag = htmlHelper.CheckBox(String.Format("{0}.{1}", collectionNameIndex, "Selected"), l.Selected);
var labelTag = new TagBuilder("label");
labelTag.Attributes.Add(new KeyValuePair<string, string>("for", String.Format("{0}.{1}", collectionNameIndex, "Name")));
labelTag.SetInnerText(l.Text);
sb.Append(hiddenName);
sb.Append(hiddenValue);
sb.Append(checkBoxTag);
sb.Append(labelTag);
sb.Append("<br/>");
i++;
}
}
return MvcHtmlString.Create(sb.ToString());
}
спасибо, это, кажется, то, что я искал. Попробуй, как только я вернусь домой. – Venemo
С некоторыми изменениями я успешно сделал это, чтобы работать так, как я хотел. Большое спасибо за код! :) – Venemo
Мне это нравится! Мне просто интересно, как реализовать проверку (ненавязчивую) сейчас ... –