tôi vẫn đang thử nghiệm nhưng điều này dường như để có được cùng với các chất kết dính mặc định và vẫn còn những lựa chọn sử dụng sau khi đăng bài .. lĩnh vực Hidden, có thật không?? .. này sẽ bay trong html5? Điều này cảm thấy điên nhưng tôi thà làm điều này hơn nhấn db của tôi cho thả xuống danh sách và hộp liệt kê chỉ vì ModelState.IsValid là sai ..
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());
}
cảm ơn, điều này có vẻ là những gì tôi đang tìm kiếm. Sẽ thử nó một khi tôi về nhà. – Venemo
Với một số sửa đổi, tôi đã thực hiện thành công nó để hoạt động như tôi muốn. Cảm ơn bạn rất nhiều vì mã! :) – Venemo
Tôi thích điều này! Tôi chỉ tự hỏi làm thế nào để thực hiện xác nhận (không phô trương) bây giờ ... –