什么样的代码我可以包括在全局.asax和_AppStart.cshtml在Web Pages v2网站



我已经阅读了许多文章和文档,但仍然不清楚我可以在全局中包含什么。asax和_AppStart。cshtml文件。

我试着放一些简单的东西,比如

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

在两个文件中,并试图在我的默认值中使用它们。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"]);

在全球。

谁能解释一下发生了什么事?

AppStart是一个Web Pages框架文件,在应用程序首次启动时执行一次,就像Global.asax一样。我怀疑这是专门设计来保护初学者免受所有事件的影响。默认情况下,asax包含由Visual Studio/WebMatrix生成的文件。

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

AppStart更多的是为简单的事情而设计的,比如初始化WebSecurity helper,或者设置全局变量。如果声明了变量,那么只有将它们声明为全局变量时,它们才能在整个应用程序中被访问。您已经发现了一种方法:

AppState["rlist"] = rlist;

或者您可以使用Web页面的动态特性:

App.rlist = rlist;

最新更新