是否可以将部分视图中的特定内容呈现到主视图中?

时间:2017-01-17 18:41:22

标签: c# asp.net-mvc partial-views

我有一个部分视图,请说_ABCPartialView,在我的部分视图中,我有两个<div>标记,如下所示:

<div>
//some dynamic stuff
</div>

<div>
<img src="blah blah"/>
</div>

是否可以仅在我的主视图中呈现包含<div>标记的第二个<img>? 此方法@html.Partial("_ABCPartialView")呈现部分视图的所有元素。你的想法?

2 个答案:

答案 0 :(得分:4)

您可以使用ViewData为PartialView提供参数。样品:

@Html.Partial("_ABCPartialView", null, new ViewDataDictionary { { "ShowSecondDiv", true } })

在PartialView中,您只需使用:

<div>

<div>

@if ((bool)ViewData["ShowSecondDiv"])
{
    <div>

    </div>
}

答案 1 :(得分:2)

您可以将模型传递给您的部分,该模型将具有是否执行此操作的属性。例如:

这是模型:

public class YourModel 
{
    public bool ShowDiv { get; set; }
}

这是父视图中的代码,它将信息传递给您的部分视图:

@Html.Partial("_ABCPartialView", new YourModel { ShowDiv = false });

在部分视图中检查该属性并执行您需要执行的操作。

@if ((bool)Model.ShowDiv)
{
    <div>
         //some dynamic stuff
    </div>
}

部分视图可以像常规视图一样拥有模型。此外,使用模型可以获得编译器帮助和智能,因此您不必担心拼写错误。