我在应用程序启动方法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);
我想让这个路径变量给我的控制器如何实现这个
答案 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)
试试这个
如上所述使用Application变量。
or
在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