我需要从派生的RazorPage
中获取视图组件的渲染结果。在 .cshtml 文件中,我可以
@await Component.InvokeAsync("MyButton", new MyModel())
现在,如果我有这个类,我的剃刀页面继承自:
public class MyRazorPage<TModel> : RazorPage<TModel>
{
public async Task<HtmlString> GetViewComponentForExample()
{
// I cannot access the injected "Component" this way...
string temp = await Component.InvokeAsync("MyButton", new MyModel()).Result.WriteTo();
return new HtmlString(temp);
}
}
在上面的方法GetViewComponentForExample()
中,我无法使用注入的Component属性。我如何访问Component属性,或者如何完成上述操作?
答案 0 :(得分:1)
你能做的就是这个(ASP .Net Core 2.0)
如果您有这样的组件:
[ViewComponent(Name = "Cart")]
public class CartViewComponent : ViewComponent
{
public async Task<IViewComponentResult> InvokeAsync()
{
return View("");
}
}
你可以在像这样的控制器中调用它
public class OtherController : Controller
{
[HttpGet]
public IActionResult Cart()
{
return ViewComponent("Cart");
}
}
这将返回一个渲染的组件