首先我要说网站已经有了一个主页面,这不是我在这里的目的。
我所追求的是每个视图页面都需要添加一些常见的HTML,这可能吗?
所以当我点击Add View时,它会创建视图。
但不是
<h2>Index</h2>
这将是
<my custom set of HTML>
这是我的主布局
<code every page is going to use>
RenderBody()
<more code every page is going to use>
现在我的RenderBody()就是我的观点。以下是我的观点需要的样子。
<some code every view will use>
CustomContent
<more code every view will use>
我将一些模板html分离到视图中,以便更轻松地处理面包屑和其他内容。
答案 0 :(得分:2)
您可以更改Visual Studio的默认脚手架。查看Modifying the default code generation/scaffolding templates in ASP.NET MVC by Scott Hanselman
当您使用Visual Studio“工具”(这意味着对话框和 东西)添加视图或添加控制器,你实际上是在执行T4 模板并生成一些代码。这是从哪里开始的 你怎么能改变它?
答案 1 :(得分:1)
是的,你可以创建一个局部视图,例如rigth点击你的共享文件夹(views-&gt;共享),然后添加视图并选择局部视图,它会打开一个cshtml文件(如果是c#),然后写你想要的部分内容。
现在你需要做的就是渲染那个html:
@Html.RenderPartial("MyPartial")
好吧,假设你有3个观点,主页,关于和联系,你想要与你公司的员工展示一张大桌子,如果你想保持干净(不要重复自己),解决方案应该是是使用部分观点。
所以我们创建一个包含该表的局部视图,如上所示添加您的部分文件,并在此文件中放置您的表:
<table>Some Huge content</table>
在你的布局中你有RenderBody,它的作用是呈现你的Home,About和Contact视图中的内容。现在你要做的是在这个视图中渲染一个局部视图,假设你的主视图是:
<h2>Home<h2>
@Html.RenderPartial("MyPartial")
所以现在你的主视图也会加载那个巨大的表,你可以在About和Contanct视图中做同样的事情。
希望它有所帮助!答案 2 :(得分:0)
Razor / cshtml没有像Web Forms / ASPX这样的母版页。它有布局:
您可以将重复代码添加到布局中,或使用部分视图。 部分视图很适合分解代码,这使得进一步开发和扩展变得更容易,并确保代码不会变得混乱到难以理解的程度。
如果使用渲染部分,您可以将其放在布局中,这样您就不需要在每个页面中重复它。
如果您将来不会更改代码,那么布局可能是更好的选择,因为您不需要在项目中包含太多文件。 http://weblogs.asp.net/scottgu/archive/2010/10/22/asp-net-mvc-3-layouts.aspx
如果您仅使用以下代码在某些页面中重复代码,也可以使用partialViews:
http://www.codeproject.com/Tips/617361/Partial-View-in-ASP-NET-MVC-4