为View设置默认HTML结构

时间:2014-02-18 20:38:49

标签: asp.net-mvc razor

首先我要说网站已经有了一个主页面,这不是我在这里的目的。

我所追求的是每个视图页面都需要添加一些常见的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分离到视图中,以便更轻松地处理面包屑和其他内容。

3 个答案:

答案 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