C# MVC控制器被多次加载

C# MVC控制器被多次加载,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,我的目标是: 用户会话将跟踪存储在中的guid Session.Add(guid.tostring()) 当在div内刷新部分时,控制器将检查 对于现有的guid。这将让我跟踪所需的通知 显示,已显示的内容,以避免重复..等等 问题是: 当再次显示通知时,即使我 在传递给视图的模型中查看它 OverviewModel model = new InformationController().GetOverviewModel(); model.DisplayAlerts = new List<

我的目标是:

用户会话将跟踪存储在中的guid Session.Add(guid.tostring())

当在div内刷新部分时,控制器将检查 对于现有的guid。这将让我跟踪所需的通知 显示,已显示的内容,以避免重复..等等

问题是:

当再次显示通知时,即使我 在传递给视图的模型中查看它

OverviewModel model = new InformationController().GetOverviewModel();
model.DisplayAlerts = new List<BasicSectionDetailModel>();

List<BasicSectionDetailModel> details = new Collector.InfoCollector().GetSectionDetailsNotOKState();
List<Guid> sessionKeys = new List<Guid>();

for (int i = 0; i < Session.Contents.Count; i++)
{
    Guid guid;

    if (Guid.TryParse(Session.Keys[i].ToString(), out guid))
    {
        sessionKeys.Add(guid);
    }
}

List<BasicSectionDetailModel> addAlert = details.Where(x => !sessionKeys.Any(x2 => x2 == x.ID)).ToList();

foreach (BasicSectionDetailModel alert in addAlert)
{
    Session.Add(alert.ID.ToString(), null);
}

List<Guid> removeAlert = sessionKeys.Where(x => !details.Any(x2 => x2.ID == x)).ToList();

foreach (Guid remove in removeAlert)
{
    Session.Remove(remove.ToString());
}

model.DisplayAlerts = addAlert;
return model;
我认为原因是什么

由于某种原因,当我调试控制器作为 方法来加载部分,它被加载了很多次 相信就是为什么当通知应该显示时,它不是

刷新部分索引的主索引视图#概述。间隔也是每15秒一次

function intervalTrigger() {
    $('#overview').load('/Home/Overview');
};

<div id="overview">
    @{Html.RenderPartial("Overview", "Home");}
</div>
函数intervalTrigger(){
$(“#概述”).load(“/Home/overview”);
};
@{Html.RenderPartial(“概述”、“主页”);}
显示警报的部分概述中的代码

@for (int i = 0; i < Model.DisplayAlerts.Count(); i++)
{
    @:$(function () {
            @:$.Notify({
                    @:keepOpen: true,
                    @:caption: '@Model.DisplayAlerts[i].SectionName',
                    @:content: '@Model.DisplayAlerts[i].ParamDescription <br/> @Model.DisplayAlerts[i].DetailDatetime.ToString("MM/dd/yyyy hh:mm:ss tt ")',
                    @:type: 'alert'
                @:});
        @:});
}
@for(int i=0;i@Model.DisplayAlerts[i].DetailDatetime.ToString(“MM/dd/yyyy hh:MM:ss tt”),
@:键入:“警报”
@:});
@:});
}
填充传递给视图的模型的代码

OverviewModel model = new InformationController().GetOverviewModel();
model.DisplayAlerts = new List<BasicSectionDetailModel>();

List<BasicSectionDetailModel> details = new Collector.InfoCollector().GetSectionDetailsNotOKState();
List<Guid> sessionKeys = new List<Guid>();

for (int i = 0; i < Session.Contents.Count; i++)
{
    Guid guid;

    if (Guid.TryParse(Session.Keys[i].ToString(), out guid))
    {
        sessionKeys.Add(guid);
    }
}

List<BasicSectionDetailModel> addAlert = details.Where(x => !sessionKeys.Any(x2 => x2 == x.ID)).ToList();

foreach (BasicSectionDetailModel alert in addAlert)
{
    Session.Add(alert.ID.ToString(), null);
}

List<Guid> removeAlert = sessionKeys.Where(x => !details.Any(x2 => x2.ID == x)).ToList();

foreach (Guid remove in removeAlert)
{
    Session.Remove(remove.ToString());
}

model.DisplayAlerts = addAlert;
return model;
OverviewModel model=newinformationcontroller().GetOverviewModel();
model.DisplayAlerts=新列表();
List details=new Collector.InfoCollector().GetSectionDetailsNotOKState();
List sessionKeys=new List();
for(int i=0;i!sessionKeys.Any(x2=>x2==x.ID)).ToList();
foreach(addAlert中的BasicSectionDetailModel警报)
{
Session.Add(alert.ID.ToString(),null);
}
List removeAlert=sessionKeys.Where(x=>!details.Any(x2=>x2.ID==x)).ToList();
foreach(在removeAlert中删除Guid)
{
Session.Remove(Remove.ToString());
}
model.DisplayAlerts=addAlert;
收益模型;
我发现了问题

model.DisplayAlerts = addAlert;
addAlert正在被销毁。我必须将内容复制到模型中,而不是将一个var分配给另一个var。

我发现了问题

model.DisplayAlerts = addAlert;

addAlert正在被销毁。我必须将内容复制到模型中,而不是将一个变量分配给另一个变量。

您似乎在那里显式地创建一个新控制器?您似乎在那里显式地创建一个新控制器?