确保部分内容每页只包含一次

本文关键字:包含一 确保部 | 更新日期: 2023-09-27 18:03:54

我如何确保一个部分只包含一次每页?我无法控制包含它的内容,因此我需要找到某种ThreadLocal上下文来设置可以由Partial

检查的FooBarTemplateLoaded标志。
@if( ! MyThreadLocalContext.FooBarTemplateLoaded ) {
   @mainContent();
   MyThreadLocalContext.FooBarTemplateLoaded = true;
}

如果有人想知道为什么我想让它只包含一次,它是一个<template>块,将被注入到所需的javascript容器。

确保部分内容每页只包含一次

您可以使用HttpContext.Current.Items来存储具有当前请求生命周期的任何信息。(ASP。. NET在后台大量使用HttpContext.Current.Items来存储每个请求的信息)

可运行示例代码

var items = HttpContext.Current.Items;
var key = "YoutubeVideoModalTemplateLoaded";
if (!(items.Contains(key)) || !(bool) items[key])
{
    @content()
    items.Add(key, true);
}