Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从cshtml页面在编译时设置全局变量_C#_Razor_Asp.net Webpages - Fatal编程技术网

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

C# 从cshtml页面在编译时设置全局变量,c#,razor,asp.net-webpages,C#,Razor,Asp.net Webpages,在ASP.NET网页“站点”中,使用webmatrix(razor模板,c#代码)创建 我是否可以在cshtml模板中设置一个变量,该变量将是“全局”(AppState),而不执行该页面 我知道我可以在页面上设置“AppState.Whatever=”,但我必须“访问”页面,以便代码“运行” 我可以在不访问模板的情况下在te cshtml模板内设置“Something.Whatever=”吗。 只有在保存这些页面时对其进行“编译”或解释,这才可能实现。 这可能吗 谢谢 您可以将名为_AppSta

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

我是否可以在cshtml模板中设置一个变量,该变量将是“全局”(AppState),而不执行该页面

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

我可以在不访问模板的情况下在te cshtml模板内设置“Something.Whatever=”吗。 只有在保存这些页面时对其进行“编译”或解释,这才可能实现。 这可能吗


谢谢

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


请在我的文章中查找标题为“应用程序变量”的部分:

您不能将变量设置为全局变量\u 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
}
使用系统;
使用System.Collections.Generic;
使用System.Web;
/// 
///此类指定全局变量
/// 
公共静态类全局
{
public const string StringName=“Some string”;
public const int name=100;
//或者你想补充什么
}

我不确定这样做的目的是什么。当页面还没有被访问时,为什么需要设置一个变量?用例如下:当我向我的站点添加一个新页面(cshtml)时。我想将此页面自动添加到我的“菜单”中,而无需编辑新的cshtml页面以外的任何其他页面。只需添加一个页面,它就会显示在菜单中,而不会被“执行”。那么,如何在不编辑Appstart.chtml的情况下做到这一点呢?在一百万年内,我从你的问题中永远猜不到你想做什么。您可以编写一些代码,列出站点中的文件,并根据结果生成菜单。如果你添加了一个页面,它会自动被代码获取。所以这是不可能的吗?除了Directory.GetFiles之外,我想不出有什么方法可以做到这一点,除非您的菜单是数据库驱动的,在这种情况下,您当然可以使用新添加的文件的详细信息更新数据库。