2012-01-30 55 views
3

我有一套复杂的路线,我需要编辑一个特定的网页。给定一个URL,我如何确定哪个控制器和视图创建了该页面?ASP.NET MVC:如何输出当前正在呈现的Controller和View?

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

我想我可以在生产中使用(其中MVC路线调试器被禁用)

+1

你想使用此数据在哪里?如果你想在你的视图中显示它,那么你已经知道哪个视图“创建了该页面”。 – Dismissile 2012-01-30 15:15:31

+0

@Dismissile我将把这个放在我的site.master页面 – LamonteCristo 2012-01-30 15:49:34

回答

6

你可以通过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

+2

交替:ViewContext.RouteData.Values [“controller”]和ViewContext.RouteData.Values [“action”] – Dismissile 2012-01-30 15:16:12

+0

OP要求了解创建的Controller和View该页面......我不确定这是否是一个错字,并且他想要控制器和操作,或者他是否需要了解该视图。 – Dismissile 2012-01-30 15:19:52

+0

@Dmissmissile是的,你是对的。我没有意识到OP也需要这个观点。相应地更新我的帖子。 – 2012-01-30 15:23:11

相关问题