访问继承自Controller的类的实例属性的属性

时间:2016-05-11 12:13:29

标签: c# asp.net asp.net-mvc

如果在混合应用程序(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();
        }
}

1 个答案:

答案 0 :(得分:0)

HttpBrowserCapabilitiesBase是抽象的,因此您无法创建它的实例。

在你的MyMvcController中你可以做HttpBrowserCapabilities browser = this.Request.Browser;

如果你创建一个新的MyMvcController()实例,如果填充了请求属性,我会感到惊讶。