我有一份酿酒人名单,每个酿酒人都有一份啤酒名单。在我的练习中,我需要从特定的Brewer中删除啤酒。
我看到了Brewers的列表,我点击了详细信息,然后我看到了该Brewers拥有的所有啤酒的名称。
我知道如何删除啤酒酿造机,但不知道如何删除啤酒从这个啤酒酿造机。我绝对需要一个啤酒酿造商的id和一个啤酒的id。
<td>
<a asp-controller="Brewer" asp-action="BeerDelete" asp-route-id="@item.BeerId">Delete</a>
</td>这里我得到了一个啤酒id,但是我怎样才能再次获得Brewer呢?
以下是删除Brewer的代码
[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}?希望我把它描述得足够好..
我试着这样做:
public IActionResult BeerDelete(int id)
{
ViewData[nameof(Beer.Name)] = _brewerRepository.GetBy(id).Beers.FirstOrDefault(e => e.BeerId == id).Name;
return View();
}亲切的问候,伊利亚
发布于 2020-10-30 23:39:36
这是完成删除啤酒从您的啤酒酿造机的许多方法之一。我假设你在你的啤酒上有一个ForeignKey给啤酒酿造机。如果我真的知道Brewer和Beer类是如何设置的,我可以说得更准确一些。
视图
<td>
<a asp-controller="Brewer" asp-action="BeerDelete" asp-route-id="@item.BeerId" asp-route-brewerId="@item.BrewerId">Delete</a>
</td>控制器
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);
}https://stackoverflow.com/questions/64594790
复制相似问题