ASP.NET MVC 5 Привязка ViewModel со словарем списка ViewModels отправляет нулевые значения - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть несколько «продвинутых» 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 *"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...