1

我已经阅读了许多文章和文档,但我仍然不清楚我可以在 global.asax 和 _AppStart.cshtml 文件中包含哪些内容。

我试着把简单的东西,比如

@{
    var rlist = new List<string>();
    rlist.Add("Value1");
    rlist.Add("Value2");
}

在这两个文件中,并尝试在我的 Default.cshtml 中使用它们,但没有运气。它说它没有在上下文中定义。

我认为这段代码在任何地方都可以识别。

我发现它仅适用于 _AppStart.cshtml 的唯一方法是将我的 var 分配给 AppState 字典:

@{
    var rlist = new List<string>();
    rlist.Add("Value1");
    rlist.Add("Value2");
    AppState["rlist"] = rlist;
}

然后我可以通过我的页面引用 rlist 变量,如下所示:

var soulis = ((List<string>) AppState["rlist"]);

在 Global.asax 上面不起作用..

有人可以解释发生了什么吗?

4

1 回答 1

2

AppStart 是一个网页框架文件,它在应用程序首次启动时执行一次,就像 Global.asax 一样。我怀疑它是专门为保护初学者而设计的,当该文件由 Visual Studio/WebMatrix 生成时,Global.asax 默认包含的所有事件。

您可以使用 Global.asax 挂钩特定事件以执行您喜欢的任何代码。

AppStart 更多地是为简单的事情而设计的,例如初始化帮助程序,例如 WebSecurity 帮助程序,或用于设置全局变量。如果您声明变量,则只有将它们声明为全局变量,才能在应用程序中访问它们。您已经发现了一种方法:

AppState["rlist"] = rlist;

或者您可以使用网页的动态功能:

App.rlist = rlist;
于 2013-03-19T19:11:45.773 回答