在ASP.NET MVC中只执行一次代码3

问题描述:

我有一个局部视图,我创建了名为“noteEditor”。这是在称为“摘要”的另一部分视图内部呈现的。无论呈现“摘要”局部视图的次数是多少次,我都希望仅将“noteEditor”局部视图呈现给页面一次。在ASP.NET MVC中只执行一次代码3

我希望做这样的事情的总结局部视图中:

@{ 
    var viewDataNotesEditorRegistered = ViewData["notesEditorRegistered"]; 
    var notesEditorRegistered = (bool)(viewDataNotesEditorRegistered ?? false); 
} 
@if (!notesEditorRegistered) 
{ 
    <div class="notesdialog" style="display: none;">@Html.Partial("NotesEditor")</div> 
    ViewData["notesEditorRegistered"] = true; 
} 

但是,每个这段代码被称为计算机[“notesEditorRegistered”]一次回来空。

是否有更多的“全局”(对整个页面和仅在该请求期间)范围?

感谢

你可以使用的HttpContext用于这一目的,而不是ViewData的:

@{ 
    var viewDataNotesEditorRegistered = ViewContext.HttpContext.Items["notesEditorRegistered"]; 
    var notesEditorRegistered = (bool)(viewDataNotesEditorRegistered ?? false); 
} 
@if (!notesEditorRegistered) 
{ 
    <div class="notesdialog">@Html.Partial("NotesEditor")</div> 
    ViewContext.HttpContext.Items["notesEditorRegistered"] = true; 
} 
+0

这就是诀窍。谢谢! – 2012-03-26 12:53:25