【问题标题】:ASP.NET MVC: How do I output the Controller and View that is currently being rendered?ASP.NET MVC:如何输出当前正在渲染的控制器和视图?
【发布时间】:2012-01-30 15:11:43
【问题描述】:

我有一组复杂的路线,我需要编辑一个特定的网页。给定一个 URL,我如何确定哪个控制器和视图创建了该页面?

我愿意使用 ASP.NET MVC 将信息直接写入 textcolor== 背景颜色的页面,或者您可能推荐的任何其他内容。

我想要一个可以在生产中使用的解决方案(MVC 路由调试器被禁用)

【问题讨论】:

  • 您想在哪里使用这些数据?如果你想在你的视图中显示它,那么你已经知道是哪个视图“创建了那个页面”。
  • @Dismissile 我将把它放在我的 site.master 页面中

标签: asp.net-mvc asp.net-mvc-3 routes


【解决方案1】:

您可以通过ViewContext直接访问控制器和操作。

// ASP.Net MVC 3
ViewContext.Controller.ValueProvider.GetValue("controller").RawValue
ViewContext.Controller.ValueProvider.GetValue("action").RawValue

// ASP.Net MVC 2 and below:
ViewContext.Controller.ValueProvider["controller"].RawValue
ViewContext.Controller.ValueProvider["action"].RawValue

要获得视图,请查看此answer to a similar question by Phil Haack

【讨论】:

  • 交替:ViewContext.RouteData.Values["controller"] 和 ViewContext.RouteData.Values["action"]
  • OP 要求知道创建页面的控制器和视图...我不确定这是否是一个错字,他想要控制器和操作,或者他是否也需要知道视图。
  • @Dismissile 是的,你是对的。我没有意识到 OP 也需要这个视图。相应地更新了我的帖子。
猜你喜欢
  • 1970-01-01
  • 2017-04-14
  • 1970-01-01
  • 1970-01-01
  • 2010-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多