如何通过Asp.Net核心控制器将参数传递给View组件



我需要从控制器向视图组件传递一些值。我尝试了不同的方式,但它没有传播。如果我不把任何东西传递给构造函数,那么一切都很好,但当我试图把它传递给构造函数时,它甚至不会调用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();
}
}

最新更新