我有一个 ASP.NET 应用程序。我的应用程序有一个 _ViewStart.cshtml 文件。该文件如下所示:
@using MyCompany.MyApp;
@{
Layout = "/Views/Shared/_Layout.cshtml";
var p = HttpContext.Current.Request.QueryString["parameter"];
ViewBag.QSParameter = p;
}
当我执行此代码时,出现以下错误:
The name 'HttpContext' does not exist in the current context
我不明白。 _ViewStart.cshtml 不是视图的“外壳”吗?我试图弄清楚如何全局读取查询字符串参数并为每个请求在 ViewBag 上设置一个值。我认为这就是这样做的方法。
Thanks
您应该有权访问Request
在您的 _ViewStart 文件中。
尝试这个:
@using MyCompany.MyApp;
@{
Layout = "/Views/Shared/_Layout.cshtml";
var p = Request.QueryString["parameter"];
ViewBag.QSParameter = p;
}
编辑:对于 ASP.NET 5
我的机器上没有 ASP.NET 5,但查看了该框架的源代码。看起来好像有一个Context
属性于RazorPage
返回一个HttpContext
。或者,您可以访问HttpContext
通过ViewContext
。见下文:
@{
Layout = "/Views/Shared/_Layout.cshtml";
var p = Context.Request.Query["parameter"];
// or this...
// var p = ViewContext.HttpContext.Request.Query["parameter"];
ViewBag.QSParameter = p;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)