首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.NET MVC:如何从列表中删除也在列表中的元素

ASP.NET MVC:如何从列表中删除也在列表中的元素
EN

Stack Overflow用户
提问于 2020-10-29 23:59:48
回答 1查看 332关注 0票数 1

我有一份酿酒人名单,每个酿酒人都有一份啤酒名单。在我的练习中,我需要从特定的Brewer中删除啤酒。

我看到了Brewers的列表,我点击了详细信息,然后我看到了该Brewers拥有的所有啤酒的名称。

我知道如何删除啤酒酿造机,但不知道如何删除啤酒从这个啤酒酿造机。我绝对需要一个啤酒酿造商的id和一个啤酒的id。

代码语言:javascript
复制
 <td>
    <a asp-controller="Brewer" asp-action="BeerDelete" asp-route-id="@item.BeerId">Delete</a>
</td>

这里我得到了一个啤酒id,但是我怎样才能再次获得Brewer呢?

以下是删除Brewer的代码

代码语言:javascript
复制
[HttpPost, ActionName("Delete")]
    public IActionResult DeleteConfirmed(int id)
    {
        Brewer brewer = null;
        try
        {
            brewer = _brewerRepository.GetBy(id);
            _brewerRepository.Delete(brewer);
            _brewerRepository.SaveChanges();
            TempData["message"] = $"You successfully deleted brewer { brewer.Name}.";
        }
        catch
        {
            TempData["error"] = $"Sorry, something went wrong, brewer { brewer?.Name} was not deleted…";
        }
        return RedirectToAction(nameof(Index));
    }

也许我需要保存一些啤酒的id?或者,当我在他的页面上查看啤酒列表时,有可能获得酿酒人的id?

删除酿酒人网址:…/Brewer/Delete/4

删除啤酒URL:.../Brewer/ Beer / Delete /{id}?希望我把它描述得足够好..

我试着这样做:

代码语言:javascript
复制
public IActionResult BeerDelete(int id)
    {
        ViewData[nameof(Beer.Name)] = _brewerRepository.GetBy(id).Beers.FirstOrDefault(e => e.BeerId == id).Name;
        return View();
    }

How I did this

亲切的问候,伊利亚

EN

回答 1

Stack Overflow用户

发布于 2020-10-30 23:39:36

这是完成删除啤酒从您的啤酒酿造机的许多方法之一。我假设你在你的啤酒上有一个ForeignKey给啤酒酿造机。如果我真的知道BrewerBeer类是如何设置的,我可以说得更准确一些。

视图

代码语言:javascript
复制
 <td>
    <a asp-controller="Brewer" asp-action="BeerDelete" asp-route-id="@item.BeerId" asp-route-brewerId="@item.BrewerId">Delete</a>
</td>

控制器

代码语言:javascript
复制
public IActionResult BeerDelete(int id, int brewerId)
    {
        // This would select the beer and pass it into the view as the view's model.
        // Brewer should also be populated for this beer.
        var beer = _brewerRepository.GetBy(brewerId).Beers.FirstOrDefault(e => e.BeerId == id);
        return View(beer);
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64594790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档