【问题标题】:how to render partial view conditionally如何有条件地渲染局部视图
【发布时间】:2014-04-11 07:22:28
【问题描述】:

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

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

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

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

我试过了,

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

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

【问题讨论】:

  • 可以显示部分视图代码吗?

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


【解决方案1】:

如果 Type 的值为“RER”,则应呈现:

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

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

您必须确保 Type 不是“RER”,否则它应该可以工作

【讨论】:

  • 如果Type 的值为"RER" 我不想渲染局部视图
  • 好的,那么如果它不是 RER,它应该可以调试并检查视图,如果它没有 RER,我确定它即将到来的 RER
【解决方案2】:

如果您的主视图与模型绑定,而局部视图也需要模型,则使用“元组”在局部视图中绑定两个模型。通过 ViewBag 将部分视图名称发送到视图。

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-21
    • 2016-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多