How to invoke a View Component from controller

前端 未结 5 1995
耶瑟儿~
耶瑟儿~ 2021-02-13 19:08

Is it possible to invoke a View Component from controller and render it to a string? I am really looking for some code example for this. Any help will be much appreciated.

5条回答
  •  轻奢々
    轻奢々 (楼主)
    2021-02-13 19:38

    Code from dotnetstep's answer updated for MVC 6.0.0-beta4 (VS2015 RC):

    public class HomeController : Controller
        {
            Microsoft.AspNet.Mvc.ViewComponents.DefaultViewComponentHelper helper = null;
    
            public HomeController(IViewComponentDescriptorCollectionProvider descriptorProvider, IViewComponentSelector selector, IViewComponentInvokerFactory invokerFactory)
            {
                helper = new DefaultViewComponentHelper(descriptorProvider, selector, invokerFactory);
            }
            public IActionResult Index()
            {                  
                ViewContext context = new ViewContext(ActionContext, null, ViewData, null, null);
                helper.Contextualize(context);
                string st1 = helper.Invoke("My", null).ToString();
                return View();
            }
    }
    

提交回复
热议问题