我需要从控制器向视图组件传递一些值。我尝试了不同的方式,但它没有传播。如果我不把任何东西传递给构造函数,那么一切都很好,但当我试图把它传递给构造函数时,它甚至不会调用ViewComponent
控制器:
[HttpGet]
public IActionResult AddToCart(int id)
{
return ViewComponent("Cart", new {id});
}
视图组件:
public class CartViewComponent : Microsoft.AspNetCore.Mvc.ViewComponent
{
int gId;
public CartViewComponent(int id)
{
gId = id;
}
public IViewComponentResult Invoke()
{
return View();
}
}
调用视图组件包括以下解释:
参数将传递给
InvokeAsync
方法。
这意味着您应该将id
参数从构造函数移动到Invoke
方法:
public class CartViewComponent : Microsoft.AspNetCore.Mvc.ViewComponent
{
public IViewComponentResult Invoke(int id)
{
// Use id here.
return View();
}
}