如何使用局部视图?

时间:2015-07-09 08:42:55

标签: html asp.net-mvc

我没有经常使用部分视图,但我确实理解基础知识,但我遇到了问题。

我有一个带有模态表单的母版页。在这种模式形式中,我想使用局部视图来呈现图像和页脚。但是,我需要手动写入标题和正文内容。所以基本上它看起来像这样:

部分视图:

-Image- - 我想写的内容 - -footer -

但是,每当我尝试执行此操作并包含渲染主体或渲染部分等内容时,它都不起作用。有没有人对如何做到这一点有任何想法?

模态:

  <div id="helpModal" class="modal fade" role="dialog">
            <div class="modal-dialog">
                <div class="modal-content">
                    @Html.Partial("ModalLayoutPartial")           
                    <h1 style="text-align:center"> HELP </h1>
                    <div class="modal-body">
                        <p>Help help helperton</p>
                    </div>
                </div>
            </div>
        </div>

部分视图:

<div class="modal-header">
    <img src="~/Content/Images/Logo/ap_tick_green.png" />
</div>
<body>

</body>
<div class="modal-footer">
    <a href="#">Need more help? Contact us here.</a>
</div>

1 个答案:

答案 0 :(得分:1)

您可以将模型传递给partial,因此在您的情况下,将模型设为字符串:

@Html.Partial("ModalLayoutPartial", "text to show")  

然后在你的部分声明模型(并使用它):

@model string

<div class="modal-header">
    <img src="~/Content/Images/Logo/ap_tick_green.png" />
</div>
<body>
    @Html.Raw(Model)
</body>
<div class="modal-footer">
    <a href="#">Need more help? Contact us here.</a>
</div>

请注意,您不应在上面使用正文标记 - a html document should only have one body tag

或者你可以传授一堂课:

public class ModalInfo
{
    public string Title { get; set; }
    public string Body { get; set; }
}

然后打电话给你的部分:

@Html.Partial("ModalLayoutPartial", new ModalInfo() { Title = "HELP", Body = "Help help helperton" })  

显示您的部分

@model ModalInfo

<div class="modal-header">
    <img src="~/Content/Images/Logo/ap_tick_green.png" />
</div>
<div class="body">
    <h1 style="text-align:center">@Model.Title</h1>
    <div class="modal-body">
       <p>@Model.Body</p>
    </div>
</div>
<div class="modal-footer">
    <a href="#">Need more help? Contact us here.</a>
</div>