在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;
}
这就是诀窍。谢谢! – 2012-03-26 12:53:25