如何使用可重用模板包装控制器的所有视图?
How to wrap all views of a controller with a reusable template?
我有一个 ASP MVC 5 应用程序,它有一个名为 Member
的控制器,所有与成员相关的操作和视图都驻留在其中。通过此控制器创建的所有视图都应包装在用作菜单的 html 的单个片段中。例如,欢迎视图可能如下所示:
<div class="member-menu">
<!-- View code goes here -->
<p>Welcome</p>
</div>
虽然另一个视图可能看起来像:
<div class="member-menu">
<!-- View code goes here -->
<p>Some other stuff here</p>
</div>
我想尽可能避免在每个视图中重复菜单代码,因为它将来可能会变大。我对共享视图、子操作和自定义路由进行了一些研究,但似乎找不到适合这种模式的任何内容。我想在这里做的事情容易实现吗?
对于这个特定任务,您似乎需要布局
MenuWrapperTemplate.cshtml
<div class="member-menu">
@RenderBody();
</div>
欢迎查看
@{
Layout = "~/Views/Shared/MenuWrapperTemplate.cshtml";
}
<!-- View code goes here -->
<p>Welcome</p>
如果这些真的是菜单,您希望它们出现在网站的 layout/master 中,然后在此处查看 MVC where to render menu view
您可能应该掌握 MVC、Html 助手 (Render/RenderAction/partial) 以及布局的工作原理。
希望对您有所帮助
我有一个 ASP MVC 5 应用程序,它有一个名为 Member
的控制器,所有与成员相关的操作和视图都驻留在其中。通过此控制器创建的所有视图都应包装在用作菜单的 html 的单个片段中。例如,欢迎视图可能如下所示:
<div class="member-menu">
<!-- View code goes here -->
<p>Welcome</p>
</div>
虽然另一个视图可能看起来像:
<div class="member-menu">
<!-- View code goes here -->
<p>Some other stuff here</p>
</div>
我想尽可能避免在每个视图中重复菜单代码,因为它将来可能会变大。我对共享视图、子操作和自定义路由进行了一些研究,但似乎找不到适合这种模式的任何内容。我想在这里做的事情容易实现吗?
对于这个特定任务,您似乎需要布局
MenuWrapperTemplate.cshtml
<div class="member-menu">
@RenderBody();
</div>
欢迎查看
@{
Layout = "~/Views/Shared/MenuWrapperTemplate.cshtml";
}
<!-- View code goes here -->
<p>Welcome</p>
如果这些真的是菜单,您希望它们出现在网站的 layout/master 中,然后在此处查看 MVC where to render menu view
您可能应该掌握 MVC、Html 助手 (Render/RenderAction/partial) 以及布局的工作原理。
希望对您有所帮助