如果在混合应用程序(MVC + webforms,但主要是webforms)中,为什么我无法为myBrowser
变量赋值,我在类Class1
中添加了这个内部类
public class MyMvcController : System.Web.Mvc.Controller
{
}
然后在属于Class1的方法中,我尝试按如下方式引用它
HttpBrowserCapabilitiesBase myBrowser = new MyMvcController().Request.Browser;
此时myBrowser为null。
PS:Request属性是Controller的实例属性
从语法上讲,我所做的是正确的(没有错误)
我包括以下具体示例:
public class Class1 : System.Web.UI.MasterPage
{
public class MyMvcController : System.Web.Mvc.Controller
{
}
public string getBrowser()
{
return new MyMvcController().Request.Browser;
//HttpBrowserCapabilitiesBase browser = new MyMvcController().Request.Browser;
}
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
string b = getBrowser();
}
}
答案 0 :(得分:0)
HttpBrowserCapabilitiesBase
是抽象的,因此您无法创建它的实例。
在你的MyMvcController中你可以做HttpBrowserCapabilities browser = this.Request.Browser;
如果你创建一个新的MyMvcController()实例,如果填充了请求属性,我会感到惊讶。