我刚开始将我的asp.net网站从Webform升级到MVC 2.到目前为止,它比Webform更清晰,更轻松。我正在坚持用不同的行动来重新发送用户控件。
名为Banner.ascx
的我的用户控件位于Site.Master
。这个Banner.ascx
来自DataView["BannerUrl"]
的网址是在HomeController>中设置的。指数行动。当我将URL指向/Home/Index
时,这将运行正常。现在我希望这个Banner.ascx
控件只从HomeController获取DataView>索引我指向的任何操作,例如当指向/ Article / Detail / 1的点URL时,我希望HomeConttroller的Banner.ascx
运行操作索引获取DataView["BannerUrl"]
任何回应都表示赞赏。提前谢谢。
答案 0 :(得分:1)
您可以像调用任何其他服务器端代码一样调用MVC Controller。您可以通过IControllerFactory
访问已注册的ControllerBuilder.GetControllerFactory()
实例。然后,您可以使用控制器工厂来获取IController
实例的初始化实例,方法是在RouteData
参数的RequestContext
中传递路由值(这些将是controller = "Home"
然后action = "Index"
。IController.Execute()
将以与MVC生命周期收到请求相同的方式执行Action。