如何在剃刀页面外调用Html.Raw和Html.Partial?

时间:2018-12-29 13:07:13

标签: razor asp.net-core

我有这个要求。我需要能够在我的剃刀视图中编写以下代码:

 const workers = JSON.parse(JSON.stringify(workers));
 for(const worker of workers)
   if(worker.ocupation == "Iron Man")
    worker.ocupation = "Philantropist";

替代方法是:

@Filters.Render(Filters.DateRangeFilter, new DateRangeFilterParameters { });

换句话说,我希望@Html.Partial("/Views/Shared/DateRangeFilter.cshtml", new DateRangeFilterParameters { }); 类包装Filters。因此,我想到了这段代码:

Html.Partial

1 个答案:

答案 0 :(得分:1)

要在控制器内使用Html.Raw,您可以请求注入的IHtmlHelper服务。例如:

HttpContext.RequestServices.GetService(typeof(IHtmlHelper)) as IHtmlHelper;

或者您也可以为助手做自己的实现。为了使用Html.Partial,您需要使用IRazorViewEngineViewContext和其他东西。因此,基本上,您需要为此实现服务,这是一个很好的示例Render Partial View To String Outside Controller Context

我不知道是否有更简单的方法来实现这些目标,但这就是我的想法。