【问题标题】:How to use Partial View?如何使用局部视图?
【发布时间】:2015-07-09 17:06:53
【问题描述】:

我不经常使用局部视图,但我确实了解基础知识,但我有一个问题。

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

局部视图:

-图片- -我想写的内容- -页脚-

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

模态:

  <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>

【问题讨论】:

  • 很抱歉,您能否详细说明您的问题。我不明白问题是什么?
  • 问题是我不能使用RenderBody或RenderSection,我得到以下错误:文件“~/Views/Shared/ModalLayoutPartial.cshtml”不能被直接请求,因为它调用了“RenderSection”方法.
  • 我相信这是因为我在母版页上使用@section,然后尝试在局部视图上呈现一个部分

标签: html asp.net-mvc


【解决方案1】:

您可以将模型传递到部分中,因此在您的情况下将模型设为字符串:

@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>

请注意你不应该在上面使用body标签 - 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>

【讨论】:

  • 不错的答案,但是我现在将如何在我现在拥有的每个视图上使用我的模型,否则它会失败。我想我只是要对模态表单进行硬编码。没有太多。不过谢谢
猜你喜欢
  • 1970-01-01
  • 2013-03-29
  • 1970-01-01
  • 1970-01-01
  • 2012-09-07
  • 2012-01-29
  • 2015-10-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多