C# 如何执行模型的编辑方法?

C# 如何执行模型的编辑方法?,c#,.net,asp.net-mvc,asp.net-core,C#,.net,Asp.net Mvc,Asp.net Core,我想知道如何修改或删除(编辑异步或删除)属于同一视图的1或2个模型 就像这个例子一样 public class FruitsViewModel { public List<Abricot> Abricots { get; set; } public List<Banane> Bananes { get; set; } public List<Citron> Citrons { get; set; } } @model nam

我想知道如何修改或删除(编辑异步或删除)属于同一视图的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,
公共类水果视图模型
{
公共列表Abricots{get;set;}
公共列表Bananes{get;set;}
公共列表Citrons{get;set;}
}
@模型名称空间de FROUTSVIEWMODEL
@foreach(模型中的var abricot.Abricots)
{
//阿布里科特酒店
}
@foreach(模型中的var banane.Bananes)
{
//巴纳内固有词缀
}
@foreach(模型中的var citron.cirons)
{
//雪铁龙酒店
}
公共ActionResult ActionController()
{
var vm=新的水果视图模型();
vm.Abricots=//Récupère les Abricots depuis la base de donées
vm.Bananes=//Récupère les Bananes depuis la base de donées
vm.Citrons=//Récupère les Citrons depuis la base de donées
返回视图(vm);
}
我很喜欢你的代码,也不例外,
如果我单击保存按钮,通常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");
`在此处输入代码`@foreach(Model.personnels中的var banane)
{
----动作编辑
public ActionResult EditBanane(int-id,[Bind(“id,Name,Color,BananeP”)]Banane-Banane)
{
_背景更新(巴南);
_context.saveChangesSync();
返回操作(“索引”);
如何在banana或lemon模型上执行Edit-in-method公共异步任务编辑(int-id、[Bind(“id,…”)])

如果您想编辑/更新香蕉或柠檬等的模型项,可以尝试以下方法

方法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
    //...
}

方法2:生成预期数据并使用Fetch API或Ajax等发出请求,以使用JavaScript代码将数据发布到相应的操作方法。

非常感谢您的回复

我很喜欢,但不幸的是,它不工作,但更新还没有完成

    @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");}
@foreach(Model.bananes中的变量项)
{
项目id)>
}
公共IActionResult视图编辑([Bind(“id、名称、颜色、BananeP”)]Banane项)
{
_背景。更新(项目);
_context.saveChangesSync();
返回重定向到操作(“索引”);}

我很喜欢你的代码,页面索引(主页)中的模型也不例外,也没有更新

@foreach(Model.Bananes中的变量banane)
{
----动作编辑
public ActionResult EditBanane(int-id,[Bind(“id,Name,Color,BananeP”)]Banane-Banane)
{
_背景更新(巴南);
_context.saveChangesSync();
返回操作(“索引”);

如果调试代码,操作参数
Banane item
是否与发布的值绑定?您的操作方法是否有任何异常?您可以使用更新编辑原始问题,而不是发布新问题作为答案。没有异常,我不明白您的意思,我喜欢此操作:如果有帮助,请解决问题。(所有问题都一样。)
    @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");}
@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");