У меня есть несколько «продвинутых» ViewModel, с которыми я не могу справиться должным образом.После публикации формы в параметрах действия контроллера есть ключи , а значения равны нулю.Я перепробовал все, что нашел, и каждый раз, когда он имел нулевые значения, если вам нужна дополнительная информация, просто напишите, и я предоставлю ее.
Я использую плагин jQuery select2 для своих входных данных выбора.
ParentViewModel:
public class ParentViewModel
{
public IList<string> ParentValues { get; set; }
public IDictionary<string, IList<ChildViewModel>> ChildDictionary { get; set; }
}
ChildViewModel:
public class ChildViewModel
{
public string Id { get; set; }
public IList<string> ChildValues { get; set; }
}
View:
@foreach (KeyValuePair<string, IList<ChildViewModel>> child in Model.ChildDictionary)
{
<table>
<thead>
<tr>
<td>Id</td>
<td>Values</td>
</tr>
</thead>
<tbody>
@for (var i = 0; i < child.Value.Count; i++)
{
<tr>
<td>@child.Value[i].Id</td>
<td>
@Html.HiddenFor(m => child.Value[i].Id)
// Here i tried manual binding
<select multiple="multiple" name="Model.ChildDictionary[@child.Key].Value[@i].ChildValues">
@for (var r = 0; r < Model.ParentValues.Count; r++)
{
<option @(child.Value[i].ChildValues.Contains(Model.ParentValues[r]) ? "selected" : "") value="@Model.ParentValues[r]">
@Model.ParentValues[r]
</option>
}
</select>
</td>
</tr>
}
</tbody>
</table>
}
EDIT: Хорошо, если словарь плохой, возможно, у вас есть идея.
Я получил список данных такого типа:
ID |ЗНАЧЕНИЯ
Base1-subbase1-foo |foo, bar
Base1-subbase2-foo |foo
Base2-subbase1-foo |foo, bar
Base2-subbase2-foo |foo, bar
Base3-subbase1-foo |bar
и мне нужно сгруппировать их по значению id "Base *"