Как я могу выполнить метод редактирования для модели asp. net ,? - PullRequest
0 голосов
/ 10 июля 2020

Я новичок и на самом деле изучаю эту технологию

Я хотел знать, как изменить или удалить (Изменить asyn c или удалить) 1 или 2 модели, принадлежащие одному и тому же представлению

как в этом примере у нас есть

public class FruitsViewModel
 
{
    public List<Abricot> Abricots { get; set; }
 
    public List<Banane> Bananes { get; set; }
 
    public List<Citron> Citrons { get; set; }
}
@model namespace de FruitsViewModel
 
@foreach(var abricot in Model.Abricots)
{
    // Affiche les propriétés d'un abricot
}
 
    @foreach(var banane in Model.Bananes)
    {
        // Affiche les propriétés d'une banane
    }
     
    @foreach(var citron in Model.Citrons)
    {
        // Affiche les propriétés d'un citron
    }
    public ActionResult ActionController()
    {
        var vm = new FruitsViewModel();
        vm.Abricots = // Récupère les abricots depuis la base de données
        vm.Bananes = // Récupère les bananes depuis la base de données
        vm.Citrons = // Récupère les citrons depuis la base de données
     
        return View(vm);
    }





  i do like your code,there is no exception,

, если я нажму кнопку сохранения, обычно модель banae будет изменена, и я напишу в индекс, который отображает это обновление

`enter code here` `@foreach (var banane in Model.personnels)
        {
   <form asp-action="EditBanane" method="post">
        <div asp-validation-summary="ModelOnly" class="text-danger"></div>
        <div class="form-group">
            <label asp-for="@banane.Id" class="control-label"></label>
            <input asp-for="@banane.Id" class="form-control" />
            <span asp-validation-for="@banane.Id" class="text-danger"></span>
        </div>
        <div class="form-group">
            <label asp-for="@banane.Name" class="control-label"></label>
            <input asp-for="@banane.Name" class="form-control" />
            <span asp-validation-for="@banane.Name" class="text-danger"></span>
        </div>
        <div class="form-group">
            <label asp-for="@banane.Color" class="control-label"></label>
            <input asp-for="@banane.Color" class="form-control" />
            <span asp-validation-for="@banane.Color" class="text-danger"></span>
        </div>
        <div class="form-group">
            <label asp-for="@banane.BananeP" class="control-label"></label>
            <input asp-for="@banane.BananeP" class="form-control" />
            <span asp-validation-for="@banane.BananeP" class="text-danger"></span>
        </div>
        <div class="form-group">
            <input type="submit" value="Save" class="btn btn-primary" />
        </div>
    </form>
----action Edit
  public ActionResult EditBanane(int id, [Bind("id,Name,Color,BananeP")] Banane banane)
        {
                 
                    _context.Update(banane);

                     _context.SaveChangesAsync();
           

                return RedirectToAction("Index");

Ответы [ 3 ]

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

как я могу сделать Edit в методе publi c asyn c Task Edit (int id, [Bind ("id, ..,")] ....) на банане или лимоне модель

Если вы хотите отредактировать / обновить элемент модели банана или лимона и т.д. c, вы можете попробовать эти подходы.

Подход 1 : поместите поля ввода элемента модели в форму и укажите метод действия для отправки формы, как показано ниже.

@foreach (var fruit in Model.Abricots)
{
    // Affiche les propriétés d'un abricot 
    //...
}

@foreach (var banane in Model.Bananes)
{
    // Affiche les propriétés d'une banane
    <form asp-action="EditBanane" method="post">
        <div asp-validation-summary="ModelOnly" class="text-danger"></div>
        <div class="form-group">
            <label asp-for="@banane.Id" class="control-label"></label>
            <input asp-for="@banane.Id" class="form-control" />
            <span asp-validation-for="@banane.Id" class="text-danger"></span>
        </div>
        <div class="form-group">
            <label asp-for="@banane.Name" class="control-label"></label>
            <input asp-for="@banane.Name" class="form-control" />
            <span asp-validation-for="@banane.Name" class="text-danger"></span>
        </div>
        <div class="form-group">
            <label asp-for="@banane.Color" class="control-label"></label>
            <input asp-for="@banane.Color" class="form-control" />
            <span asp-validation-for="@banane.Color" class="text-danger"></span>
        </div>
        <div class="form-group">
            <label asp-for="@banane.BananeP" class="control-label"></label>
            <input asp-for="@banane.BananeP" class="form-control" />
            <span asp-validation-for="@banane.BananeP" class="text-danger"></span>
        </div>
        <div class="form-group">
            <input type="submit" value="Save" class="btn btn-primary" />
        </div>
    </form>
}

@foreach (var fruit in Model.Citrons)
{
    // Affiche les propriétés d'un citron
    //...
}

Метод действия

[HttpPost]
public IActionResult EditBanane(Banane banane)
{
    //...

Подход 2 : сгенерируйте ожидаемые данные и сделайте запрос, используя Fetch API или Ajax et c, чтобы отправить данные в соответствующий метод действия с кодом JavaScript.

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

Мне нравится ваш код, и он не исключение и не обновление модели в индексе страницы (главная страница)

@foreach (var banane in Model.Bananes)
            {
       <form asp-action="EditBanane" method="post">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <div class="form-group">
                <label asp-for="@banane.Id" class="control-label"></label>
                <input asp-for="@banane.Id" class="form-control" />
                <span asp-validation-for="@banane.Id" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="@banane.Name" class="control-label"></label>
                <input asp-for="@banane.Name" class="form-control" />
                <span asp-validation-for="@banane.Name" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="@banane.Color" class="control-label"></label>
                <input asp-for="@banane.Color" class="form-control" />
                <span asp-validation-for="@banane.Color" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="@banane.BananeP" class="control-label"></label>
                <input asp-for="@banane.BananeP" class="form-control" />
                <span asp-validation-for="@banane.BananeP" class="text-danger"></span>
            </div>
            <div class="form-group">
                <input type="submit" value="Save" class="btn btn-primary" />
            </div>
        </form>
    ----action Edit
      public ActionResult EditBanane(int id, [Bind("id,Name,Color,BananeP")] Banane banane)
            {
                     
                        _context.Update(banane);
    
                         _context.SaveChangesAsync();
               
    
                    return RedirectToAction("Index");
0 голосов
/ 10 июля 2020

и большое спасибо за ваш ответ,

Мне это нравится, но, к сожалению, это не работает, но обновление не выполнено

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

            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            
            <input type="hidden" value=@Html.DisplayFor(modelItem => item.id)>

            <div class="form-group">
                <label asp-for="@item.Name" class="control-label"></label>
                <input class="form-control" value="@Html.DisplayFor(modelItem => item.Name)">


            </div>
            <div class="form-group">
                <label asp-for="@item.Color" class="control-label"></label>
                <input class="form-control" value="@Html.DisplayFor(modelItem => item.Color)">


            </div>
            <div class="form-group">
                <label asp-for="@item.BananeP" class="control-label"></label>   
                <input class="form-control" value="@Html.DisplayFor(modelItem => item.BananeP)">

            </div>

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

public IActionResult ViewEdit( [Bind("id,Name,Color,BananeP ")] Banane item)
        {
          

                    _context.Update(item);

                     _context.SaveChangesAsync();


              


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