如何通过Asp .Net Core控制器将参数传递给View Component

Bet*_*sq9 2 c# asp.net-core-mvc asp.net-core

我需要从控制器将一些值传递给视图组件。我尝试了不同的方法,但它没有传输。如果我不将任何内容传递给构造函数,那么一切都会正常工作,但是当我尝试将其传递给构造函数时,它甚至不会调用 ViewComponent

控制器:

[HttpGet]
public IActionResult AddToCart(int id)
{
    return ViewComponent("Cart", new {id});
}
Run Code Online (Sandbox Code Playgroud)

查看组件:

public class CartViewComponent : Microsoft.AspNetCore.Mvc.ViewComponent
{
    int gId;

    public CartViewComponent(int id)
    {
        gId = id;
    }

    public IViewComponentResult Invoke()
    {
        return View();
    }
}
Run Code Online (Sandbox Code Playgroud)

Kir*_*kin 6

调用视图组件包括以下说明:

参数将传递给该InvokeAsync方法。

这意味着您应该将id参数从构造函数移动到Invoke方法:

public class CartViewComponent : Microsoft.AspNetCore.Mvc.ViewComponent
{
    public IViewComponentResult Invoke(int id)
    {
        // Use id here.
        return View();
    }
}
Run Code Online (Sandbox Code Playgroud)