在编译时从cshtml页面设置全局变量

时间:2013-05-13 20:25:03

标签: c# razor asp.net-webpages

在ASP.NET网页“网站”中,使用webmatrix(razor模板,c#代码)创建。

我可以在cshtml模板中设置一个变量'global'(AppState)而不执行该页面吗?

我知道我可以在页面上设置“AppState.Whatever =”,但我必须“访问”该页面,以便代码“运行”。

我可以在te cshtml模板中设置“Something.Whatever =”,而无需访问模板。 只有在保存这些页面时“编译”或解释这些页面,才能实现这一点。 这样的事情有可能吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

您可以将名为_AppStart.cshtml的文件添加到站点的根目录中。当第一次请求发送到您的应用程序时,它将执行。您可以在其中设置全局变量。

在我的文章中查找标题为“应用程序变量”的部分:http://www.mikesdotnetting.com/Article/192/Transferring-Data-Between-ASP.NET-Web-Pages

答案 1 :(得分:1)

您无法将变量设置为 _AppStart.cshtml 的全局变量。它不会将变量编译到所有页面。您可以尝试将以下内容添加到_AppStart.cshtml,但它只能将整数添加或编译到cshtml站点的所有页面。

  

App.MyInt = 0;

但是,您可以将名为Global.cs的文件添加到App_Code文件夹

using System;
using System.Collections.Generic;
using System.Web;

/// <summary>
/// This class specifies global variables
/// </summary>
public static class Global
{
    public const string StringName = "Some String";
    public const int IntName = 100;
    // Or anything else you want to add
}