Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 基于@RenderBody控制器的动态内容?_Asp.net Mvc_Asp.net Mvc 3 - Fatal编程技术网

Asp.net mvc 基于@RenderBody控制器的动态内容?

Asp.net mvc 基于@RenderBody控制器的动态内容?,asp.net-mvc,asp.net-mvc-3,Asp.net Mvc,Asp.net Mvc 3,我有一个母版页,它使用@RenderBody显示当前控制器\操作内容。我遇到的情况是,我希望根据使用@RenderBody渲染哪个控制器来显示局部视图。使用@RenderAction或@RenderPartial是否可以实现这一点?谢谢 您可能需要查看“剖面(渲染剖面)”功能。由Scott Gu很好地描述 转到您的共享视图,以及_Layout.cshtml place@Html.Partial(“\u displayCustomPartial”)的内部。然后,返回共享视图文件夹,创建一个新视图\

我有一个母版页,它使用@RenderBody显示当前控制器\操作内容。我遇到的情况是,我希望根据使用@RenderBody渲染哪个控制器来显示局部视图。使用@RenderAction或@RenderPartial是否可以实现这一点?谢谢


您可能需要查看“剖面(渲染剖面)”功能。由Scott Gu很好地描述

转到您的共享视图,以及_Layout.cshtml place
@Html.Partial(“\u displayCustomPartial”)
的内部。然后,返回共享视图文件夹,创建一个新视图
\u displayCustomPartial
。打开
\u displayCustomPartial.cshtml
,然后在其中使用以下代码:

@{
 var controllerCalled = ViewContext.Controller.ValueProvider.GetValue("controller").RawValue;
 var actionCalled = ViewContext.Controller.ValueProvider.GetValue("action").RawValue;
 switch(controllerCalled){
  case "Home": 
   @Html.Partial("_homePartial");
   break;
  case "Work":
   @Html.Partial("_workPartial");
   break;
  case default:break;
 }
}
这个场景假设您已经为每个控制器场景准备好了预制视图(我还包括了操作代码,以防您想要使用它)。如果没有准备好的预制视图,那么只需输入应该为每种情况显示的代码,而不是呈现另一个视图


这与章节之间的一个主要区别是,章节与其视图共享一个模型,使用局部视图将允许包含一个单独的模型。

对不起,没有帮助,但有没有创建这些模板的工具?@Ufuk Hacıoğulları谢谢,我甚至不知道它的存在。那么有没有办法用它来确定@RenderBody当前控制器?