ViewModel в asp. net Core - PullRequest
       6

ViewModel в asp. net Core

0 голосов
/ 10 июля 2020

У меня есть класс VIEWMODEL

 public class EditViewModel 
    {
       
       
        public List<PersonnelModel> personnels { get; set; }
        public List<DocumentModel> documents { get; set; }
    }

, и я хочу отредактировать модель персонала, это форма, заполненная личными данными x, например

, но она не работает. помогите мне, пожалуйста

 @foreach (var item in Model.personnels)
    {
    <div class="col-md-4">
      
        <form asp-action="EditPers" method="post"  asp-route-id="@item.id">

            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            
            <input type="hidden" asp-for="@item.id" >
           
            <div class="form-group">
                <label asp-for="@item.Nom" class="control-label"></label>
                <input class="form-control" asp-for="@item.Nom">
               

            </div>
            <div class="form-group">
                
                <input class="form-control" asp-for="@item.Prenom)">
                <span asp-validation-for="@item.Prenom" class="text-danger"></span>


            </div>
            <div class="form-group">
               
                <input class="form-control" asp-for="@item.Email">
                <span asp-validation-for="@item.Email" class="text-danger"></span>
            </div>
            <div class="form-group">
               
                <input class="form-control" asp-for="@item.Telephone">
                <span asp-validation-for="@item.Telephone" class="text-danger"></span>
            </div>
            <div class="form-group">
                
                <input class="form-control" asp-for="@item.Statut">
                <span asp-validation-for="@item.Statut" class="text-danger"></span>
            </div>

            <div class="form-group">
                <input type="submit" value="save" class="btn btn-info text-white " />
                
            </div>
        </form>
    </div>}

я не знаю, как написать код редактирования, помогите мне, пожалуйста

1 Ответ

1 голос
/ 11 июля 2020

Вы имеете в виду, что вы не можете передать данные контроллеру, потому что привязка модели не удалась. Это потому, что ваш asp -for = "item.xxx", поэтому ваши переданные данные будут такими. enter image description here

If you want to bind the data,Here is a demo worked:

Controller:

[HttpGet]
        public ActionResult EditPersonnelModel()
        {
            EditViewModel e = new EditViewModel();
            List list = new List { new PersonnelModel { id = 1, Email = "123@123", Nom = "n1", Prenom = "p1", Statut = "s1", Telephone = "123" }, new PersonnelModel { id = 2, Email = "1234@1234", Nom = "n2", Prenom = "p2", Statut = "s2", Telephone = "1234" } };
            e.personnels = list;
            return View(e);
        }
        [HttpPost]
        [Route("id")]
        public ActionResult EditPers(PersonnelModel p)
        {
            EditViewModel e = new EditViewModel();
            List list = new List { new PersonnelModel { id = 1, Email = "123@123", Nom = "n1", Prenom = "p1", Statut = "s1", Telephone = "123" }, new PersonnelModel { id = 2, Email = "1234@1234", Nom = "n2", Prenom = "p2", Statut = "s2", Telephone = "1234" } };
            e.personnels = list;
            return View("EditPersonnelModel",e);
        }

EditViewModel:

public class EditViewModel
    {
        public List personnels { get; set; }
    }

PersonnelModel:

public class PersonnelModel
    {
        public string Nom { get; set; }
        public string Prenom { get; set; }
        public string Email { get; set; }
        public string Telephone { get; set; }
        public string Statut { get; set; }
        public int id { get; set; }
        
    }

View:

@model EditViewModel
@{
    ViewData["Title"] = "EditPersonnelModel";
}

EditPersonnelModel

@foreach (var item in Model.personnels)
{
                спасти   } 

Результат: введите описание изображения здесь

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