我正在开发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
此视图根据链接点击加载两个部分视图中的一个。
我希望在加载一个局部视图时,部分有不同的文本,在加载其他局部视图时它应该有不同的文本。如何更改局部视图的更改部分内容?
我试图将部分移动到部分视图,但在这种情况下它根本没有加载。我们不能在布局视图中声明的局部视图中定义剖面吗?
请建议
答案 0 :(得分:0)
您无法在部分视图中定义部分。它们必须在主视图中定义。所以基本上你需要的是在点击链接时更新DOM的2个不同部分。实现此目的的一种可能方法是在控制器操作内部render the partial view to a string,然后返回包含具有相应部分内容的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);
}
});
您可以将部分内容部分外部化。