确保每页仅包含一次部分

时间:2016-08-24 07:56:57

标签: c# asp.net asp.net-mvc razor

如何确保每页仅包含一次?我无法控制包含它的内容,所以我需要找到某种ThreadLocal上下文来设置FooBarTemplateLoaded标志,可以通过Partialàla

进行检查
@if( ! MyThreadLocalContext.FooBarTemplateLoaded ) {
   @mainContent();
   MyThreadLocalContext.FooBarTemplateLoaded = true;
}

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

1 个答案:

答案 0 :(得分:1)

您可以使用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);
}