View中的ASP.NET控制器实例为null

时间:2013-12-02 21:22:51

标签: asp.net asp.net-mvc

当我尝试从View获取HomeController时,它总是为空,为什么?是因为我使用CodeBehind(参见我的完整源代码Why my button click handler in codebehind is not called?

public partial class Index : System.Web.Mvc.ViewPage<dynamic>
    {


        HomeController HomeController;



        protected void Page_Load(object sender, EventArgs e)
        {

            HomeController = (HomeController)HttpContext.Current.Request.RequestContext.RouteData.Values["HomeController"];

1 个答案:

答案 0 :(得分:2)

您可以从ViewContext获取当前控制器。它有Controller属性:

var currentController = ViewContext.Controller;

如果你确定它将是HomeController你可以投下它:

var homeController = (HomeController)ViewContext.Controller;

话虽如此,我不确定你到底想要实现什么,以及为什么地球上你的观点背后有代码,但是这很臭。