C# Razor - ViewModel возвращается в контроллер пустым - PullRequest
0 голосов
/ 06 мая 2020

У меня есть представление, которое получает список из ViewModel. Когда этот список находится внутри блока @if {}, он возвращается в контроллер пустым. Когда список находится за пределами блока @if {}, он возвращает все элементы контроллеру. Что могло случиться? Я использую. Net core 2.2. Спасибо!

 @model List<Project.DataAccess.ViewModels.Values.ValuesVM> 

<form form asp-controller="Values" asp-action="ValuesIndex" method="post">

   @for (var i = 0; i < Model.Count(); i++)
    {
        @if (Model[i].Tipo == 1)
        {
            <div class="flex-column">
                <div class="flex-row">
                    <div style="text-align:center; width:200px;">
                        <span class="grid-margin-text">@Model[i].Name</span>
                    </div>

                    <div  style="text-align:center; width:50px; background-color:aliceblue;">
                        <span class="grid-margin-text">@Model[i].Value1</span>
                    </div>
                    <div style="width:50px;">
                        <input asp-for="@Model[i].Value2" value="@Model[i].Value2"
                               id="iptDC@(Model[i].Guid)" type="number" style="width:50px; text-align:center;" />
                    </div>
                </div>  
            </div>
        }   
    }
</form>

1 Ответ

0 голосов
/ 06 мая 2020

Решение: поместить поле списка, которое не будет изменяться (редактироваться), за пределами «если».

@for (var i = 0; i < Model.Count; i++)
{
     <div style="display:none;">
        <input asp-for="@Model[i].Id" value="@Model[i].Id"
               id="iptId@(Model[i].Guid)" type="number" />
     </div>

    if block 

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