如何将模型传递给 Razor 页面自定义帮助程序



我想将模型传递给自定义 Razor 帮助程序以执行重复的 Razor 生成任务。 我想要生成的代码如下所示:

@foreach (Place P in Model.Places)
{
<div class="col-md-4 clsBorder">
    @if (P.prop1 != null && P.prop1  != "")
    {<div class="row ">
        <div class="col-6">
            @Html.DisplayNameFor(model => P.prop1 )
        </div>
        <div class="col-6">
            @Html.DisplayFor(model => P.prop1 )
        </div>
    </div>}
    @if (P.prop2 != null && P.prop2  != "")
    {<div class="row">
        <div class="col-6">
            @Html.DisplayNameFor(model => P.prop2)
        </div><div class="col-6">
            @Html.DisplayFor(model => P.prop2)
        </div>
    </div>}
</div>
}

显然,Model.Places中可能有超过 2 个 Place 对象,每个 Place 对象中可能有多个 prop1 和 prop2。

那么如何传递 Places 对象(可能是List<customClass>),并为每个属性生成代码呢?

怎么样,你命名你的帮助程序方法,并在参数模型两边加上括号。

@Util.MyUtilMethod(Model.Places)

假设帮助程序方法调用将模板呈现为字符串的服务

public static class Util
{
    //...
    public async string MyUtilMethod(List<customClass> places)
    {
      return await this._viewRenderService.RenderToStringAsync(
       "blahContext/blahAction", 
        new blahContext.blahModel { Places = places});
    }
    //...
}

如何将 Razor 页面呈现为字符串的示例。

相关内容

  • 没有找到相关文章

最新更新