如何有条件地渲染局部视图

本文关键字:染局 视图 有条件 | 更新日期: 2023-09-27 17:57:48

我有一个由子视图(局部视图)组成的视图(父视图)如下所示,

@{ Html.RenderPartial("_partialViewName",Model);}
@(Html.X().Panel().
        Items(Html.X().Container().ID("cntrGenerateReportResult")
          )
    )

是否可以根据条件显示/隐藏(渲染)局部视图模型的属性值

我试过了,

@if(Model.Type != "RER")
{ 
    Html.RenderPartial("_partialViewName", Model); 
}

但没有渲染下面的面板。。

如何有条件地渲染局部视图

如果Type的值为"RER",则应进行渲染:

    @if(Model.Type.Trim() == "RER")
    { 
    }
    else
    {
     Html.RenderPartial("_partialViewName", Model); 
    }

您必须确保Type不是"RER",否则它应该工作

如果您的主视图与model&局部视图还需要一个模型,然后使用"Tuple"将两个模型绑定在局部视图中。通过ViewBag向视图发送部分视图名称。

@if (@ViewBag.PartialView != null && @ViewBag.PartialView!= "")
{
    @Html.Partial(@ViewBag.PartialView)
}

可以直接使用model.Item1/2/3/4将模型用于主视图。

但这样做的缺点是,当你不需要的时候,你必须绑定一个空白的局部视图