asp.net-mvc - 在 ASP.NET MVC 3 中只执行一次代码

标签 asp.net-mvc

我有一个名为“noteEditor”的局部 View 。这是在另一个称为“摘要”的局部 View 中呈现的。我希望“noteEditor”局部 View 只呈现到页面一次,而不管“摘要”局部 View 呈现多少次。

我曾希望在摘要部分 View 中做一些类似的事情:

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

但是,每次调用 ViewData["notesEditorRegistered"] 时,它都会返回 null。

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

谢谢

最佳答案

您可以为此目的使用 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;
}

关于asp.net-mvc - 在 ASP.NET MVC 3 中只执行一次代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9865433/

相关文章:

asp.net - 在 MVC 5 中使用 javascript 代码 - 将其放在哪里

.net - 更好地理解 Orchard 对 'Shape' 的想法

asp.net-mvc - 极简主义的错误处理方法

c# - MVC 中用于分页的映射路由

javascript - jquery javascript 导航(重定向)问题

c# - 如何获取 asp.net 页面上元素的样式

c# - 显示表中属于学校的学生

c# - 使用 .resx 文件在 LocalHost 上工作但不在服务器 MVC 上工作的本地化

c# - 为 SEO 友好的博客正确设置自定义路由

c# - Visual Studio 永远不会在 Controller 操作中遇到断点