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

时间:2014-04-11 07:22:28

标签: c# asp.net-mvc-4

我有一个包含子视图的视图(父视图)(局部视图) 如下所示,

@{ Html.RenderPartial("_partialViewName",Model);}

@(Html.X().Panel().
        Items(Html.X().Container().ID("cntrGenerateReportResult")
          )
    )

是否可以有条件地显示/隐藏(渲染)局部视图 来自Model

的属性值

我试过了,

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

但没有让下面的面板呈现..

2 个答案:

答案 0 :(得分:1)

如果Type的值为'RER',则应该呈现:

    @if(Model.Type.Trim() == "RER")
    { 

    }
    else
    {
     Html.RenderPartial("_partialViewName", Model); 
    }

你必须确保Type不是“RER”否则它应该工作

答案 1 :(得分:0)

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

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

您可以直接使用Model.Item1 / 2/3/4对主视图使用模型。

但不利之处在于,当您不需要时,必须绑定空白的局部视图。