3

我正在使用 ASP.NET Razor MVC,并且正在将部分视图用于我不想在每个页面上更新的常见内容。

我正在使用以下语法来包含我的部分视图:

@Html.Partial("PartialView")  

在特定的局部视图中,我有两个 DIVS:

<div class="divA">
    CONTENT
</div>

<div class="divB">
    CONTENT
</div>

但是,我只想包含来自divA. 我可以执行以下操作以仅包含来自的内容divA吗?

@Html.Partial("PartialView", @divA)  

如果没有,我该怎么做?

4

2 回答 2

5

您可以将部分强类型化为视图模型:

public class MyViewModel
{
    public bool ShowOnlyPartA { get; set; }
}

然后让你的视图强类型化到这个模型:

@model MyViewModel

<div class="divA">
    CONTENT
</div>

@if (Model == null || !Model.ShowOnlyPartA)
{
    <div class="divB">
        CONTENT
    </div>
}

然后你可以像这样调用你的部分:

@Html.Partial("PartialView", new MyViewModel { ShowOnlyPartA = true }) 

或像这样:

@Html.Partial("PartialView") 
于 2013-10-15T16:17:48.550 回答
1

很好的问题以及达林的回答。作为替代方案,请改为传递字符串:

<!-- View -->
@Html.Partial("PartialView", "divA") 

<!-- PartialView -->
@if (Model == "divA")
{
  <div class="divA">
  </div>
}

@if (Model == "divB")
{
  <div class="divB">
  </div>
}
于 2015-12-22T16:23:21.620 回答