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

Is it possible to render specific content from Partial View into main view?

我有一个局部视图,比如说 _ABCPartialView,在我的局部视图中,我有两个 <div> 标签,如下所示:

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

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

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

您可以使用 ViewData 为您的 PartialView 提供参数。例如:

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

在您的 PartialView 中,您只需使用:

<div>

<div>

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

    </div>
}

您可以将一个模型传递到您的部分中,该模型将有一个 属性 是否这样做。例如:

这是型号:

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

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

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

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

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

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