将应用程序启动方法中的Global.asax.cs文件变量传递给我的控制器asp.net mvc4

时间:2014-08-04 12:11:16

标签: asp.net asp.net-mvc

我在应用程序启动方法Global.asax.cs文件中创建了变量。 我想将此变量传递给我的控制器。我是asp.net的新手。我正在使用asp.net mvc4 Razor  这是我的代码全局aspx.cs文件

AreaRegistration.RegisterAllAreas();
            const string Chars = "ABCDEFGHIJKLMNPOQRSTUVWXYZ0123456789";
            var random = new Random();
            var result = new string(
                Enumerable.Repeat(Chars, 12)
                    .Select(s => s[random.Next(s.Length)])
                    .ToArray());

            var path = Server.MapPath("~/Content/" + result);

                     Directory.CreateDirectory(path);

我想让这个路径变量给我的控制器如何实现这个

2 个答案:

答案 0 :(得分:1)

您无法访问global.asax文件中声明的变量。

而不是使用变量"路径"就这样做:

Global.asax: -

AreaRegistration.RegisterAllAreas();
        const string Chars = "ABCDEFGHIJKLMNPOQRSTUVWXYZ0123456789";
        var random = new Random();
        var result = new string(
            Enumerable.Repeat(Chars, 12)
                .Select(s => s[random.Next(s.Length)])
                .ToArray());

        Application["Path"] = Server.MapPath("~/Content/" + result);  <--------

        Directory.CreateDirectory(Convert.ToString(Application["Path"]));

控制器: -

public ActionResult Index()
{
  var path1 = Convert.ToString(HttpContext.Application["Path"]));  <--------
  return RedirectToAction("About");
}

现在Application["Path"]可以在整个应用程序的任何位置使用。

答案 1 :(得分:0)

试试这个

  1. 如上所述使用Application变量。

            or
    
  2. 在Global.asax中声明静态变量并在控制器中访问它

    public class MvcApplication:System.Web.HttpApplication

      {
    
          public static string path;
    
       protected void Application_Start()
            {
           AreaRegistration.RegisterAllAreas();
         const string Chars = "ABCDEFGHIJKLMNPOQRSTUVWXYZ0123456789";
          var random = new Random();
          var result = new string(
            Enumerable.Repeat(Chars, 12)
                .Select(s => s[random.Next(s.Length)])
                .ToArray());
    
        path = Server.MapPath("~/Content/" + result);
       Directory.CreateDirectory(path);
            }
       }
    

    在您的控制器中

    var path = MvcApplication.path