如何在 ASP.NET Core 6.0 MVC 中将数据从一个动作方法传递到另一个动作方法

How to pass data from one actionmethod to another in ASP.NET Core 6.0 MVC

我想知道我应该怎么做:我使用 asp-route-id="@item.ID" 方法获取项目的 ID。

<a asp-controller="Outfit" asp-action="OutfitRatingOpslaan" 
   asp-route-id="@item.ID" class="btn btn-primary">Beoordelen</a>

需要为视图记住此 ID:

public IActionResult OutfitRatingOpslaan(item.ID)
{
    Object obj = Container.GetObject(item.ID)       
}

因此,该对象的 ID 需要与我在 OutfitRatingOpslaan(Item.ID) 视图中按下提交按钮后获得的值相结合。

我添加了一张图片,说明视图的外观以及用户可以在何处输入值。

这个新值+对象的ID需要合并存储在数据库中。

所以最终结果应该是这样的:

public IActionResult OutfitRatingSave()
{
    Rating rating = ratingContainer.AddRating(item.ID, Value);
}

有人有什么想法吗? ;p

有两种方法可以实现。

第一种方法,你可以使用:

return RedirectToAction("action", "controller", new { id = item.ID});

然后在目标操作中,只需使用:

public IActionResult OutfitRatingSave(int id)
{
    Rating rating = ratingContainer.AddRating(id, Value);
}

第二种方法,可以使用TempData["xx"]在action之间传递数据,参考下面的代码:

public IActionResult OutfitRatingOpslaan(item.ID)
{
    TempData["id"] = item.ID
    Object obj = Container.GetObject(item.ID)       
}

public IActionResult OutfitRatingSave()
{
    int id = (int)TempData["id"];
    Rating rating = ratingContainer.AddRating(id, Value);
}