razor - 如何在剃须刀页面外调用 Html.Raw 和 Html.Partial?
问题描述
我有这个要求。我需要能够在我的剃刀视图中编写此代码:
@Filters.Render(Filters.DateRangeFilter, new DateRangeFilterParameters { });
替代方案是:
@Html.Partial("/Views/Shared/DateRangeFilter.cshtml", new DateRangeFilterParameters { });
换句话说,我希望Filters
类 wrap Html.Partial
。出于这个原因,我想到了这段代码:
public class Filters {
public const string DateRangeFilter = "/Views/Shared/DateRangeFilter.cshtml";
public static HtmlString Render(string filterPath, object parameters)
{
// Here I need to call Html.Partail, how?
}
}
解决方案
要在控制器中使用 Html.Raw,您可以请求注入的IHtmlHelper
服务。例如:
HttpContext.RequestServices.GetService(typeof(IHtmlHelper)) as IHtmlHelper;
或者您可以为帮助程序执行您自己的实现。为了使用,Html.Partial
您需要使用IRazorViewEngine
,ViewContext
和其他东西。所以基本上你需要为此实现一个服务,这是一个很好的例子Render Partial View To String Outside Controller Context。
我不知道是否有更简单的方法来实现这些,但这就是我的想法。
推荐阅读
- jenkins - 如何通过自动化复制詹金斯设置
- java - Android - 将参数发送到 php 脚本以在查询中使用它
- asp.net - 如何在 vb.net 中使用服务器端制作数据引导程序
- mysql - 将一个字段拆分为基于另一字段中的值的多列
- angular - 在 UI 路由器,Angular 5 中回调或从子级到父级?
- angular - 如何从区分大小写的查询参数变量中获取值?
- powershell - Powershell Write-Error Write-Warning 自定义格式
- scala - scala中的List[Row]到RDD[CassandrRow]转换
- php - 如何将 PHP 父对象转换/转换为子对象?
- javascript - 使用 javascript 或 jquery 获取数组中的复选框状态