0

I tried the following but the AddFacultyDetailsViewModel is returned with empty FacultyConditionRow list

This is my viewModel

public class AddFacultyDetailsViewModel
{
    public AddFacultyDetailsViewModel()
    {
        Rows = new List<FacultyConditionRow>();
    }
    public SelectList ConditionsList { get; set; }
    public List<FacultyConditionRow> Rows { get; set; }
}

This is the type within the list

public class FacultyConditionRow
{
   public FacultyConditionRow()
   {
       SelectedConditionsExceptions = new List<int>();
   }
   public List<int> SelectedConditionsExceptions { get; set; }
}

This is the view that contains the multi-select-list

@model ViewModels.AddFacultyDetailsViewModel

@for (var i = 0; i < Model.Rows.Count; i++)
{
    <div class="input-group ">
        <select
          asp-for="@Model.Rows.ElementAt(i).SelectedConditionsExceptions"
          asp-items="@Model.ConditionsList">
        </select>
    </div>
}

1 Answer 1

1

the AddFacultyDetailsViewModel is returned with empty FacultyConditionRow list

To make selected value(s) can be bound to List<FacultyConditionRow> Rows property of your viewmodel class automatically, please modify the asp-for attribute of select tag helper as below.

<form method="post">
    @for (var i = 0; i < Model.Rows.Count; i++)
    {
        <div class="input-group ">
            <select asp-for="@Model.Rows[i].SelectedConditionsExceptions"
                    asp-items="@Model.ConditionsList">
            </select>
        </div>
    }
    <input type="submit" value="Submit" />
</form>

Test Result

Posted formdata

enter image description here

Debug result

enter image description here

Sign up to request clarification or add additional context in comments.

1 Comment

Thanks so much, your answer is helpful

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.