0

我正在处理 asp.net MVC 3 应用程序,我有一个布局页面,其中包含如下部分:

   <div class="rt-block">
                                <div id="rt-mainbody">
                                    @if (IsSectionDefined("BodyTitle"))
                                    {
                                        <div class="rt-headline">
                                            <h1 class="rt-article-title">
                                                @RenderSection("BodyTitle", false)
                                            </h1>
                                        </div>   
                                    }
                                    <div class="clear">
                                    </div>
                                    <div>
                                        @RenderBody()
                                    </div>
                                </div>
                            </div>

在我的观点中,我正在定义这样的部分:

@section BodyTitle {
    <span>Verify</span> Your Identity
}

partail view here

此视图根据链接点击加载两个部分视图之一。

我希望在加载一个局部视图时,该部分具有不同的文本,而当加载其他局部视图时,它应该具有不同的文本。如何更改部分视图更改部分内容?

我试图将部分移动到部分视图,但在这种情况下它根本没有加载。我们不能在布局视图中声明的局部视图中定义部分吗?

请建议

4

1 回答 1

0

您不能在局部视图中定义部分。它们必须在主视图中定义。所以基本上你需要的是在单击链接时更新 DOM 的 2 个不同部分。实现此目的的一种可能方法是将部分视图呈现为控制器操作内的字符串,然后返回包含 2 个属性和相应部分内容的 JSON 结果。

return Json(new
{
    partialHtml = RenderPartialViewToString("_SomePartial"),
    sectionHtml = RenderPartialViewToString("_SomeSection")
});

接着:

$.ajax({
    url: '...',
    type: 'POST',
    success: function(result) {
        // first update the partial
        $('#partialContainerId').html(partialHtml);

        // now update the section
        $('.rt-article-title').html(sectionHtml);
    }
});

您可以将部分内容外部化。

于 2012-10-04T09:58:46.390 回答