当我尝试从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"];
答案 0 :(得分:2)
您可以从ViewContext
获取当前控制器。它有Controller
属性:
var currentController = ViewContext.Controller;
如果你确定它将是HomeController你可以投下它:
var homeController = (HomeController)ViewContext.Controller;
话虽如此,我不确定你到底想要实现什么,以及为什么地球上你的观点背后有代码,但是这很臭。