怎么添加visual studio2015 mvc4的母板

怎么添加visual studio2015 mvc4的母板,第1张

用visual studio2012打开网站项目

在网站项目名称上右击,在菜单中点击添加

在d出菜单中点击添加新项

在d出框中选择母版页

可以修改母版页名称,点击添加

这时母版页文件出现在网站项目下,同时工具左侧打开母版页的代码

相信不少人与文超一样需要一个MVC 嵌套的母版页 项模板 嵌套的母版有助于细致规划页面公共部分(尤其是要求一改全改的地方) 但是目前官方的MVC项模板中尚未提供 而事实上制作一份项模板是相当简单的 文超懒怠成性 遂以先在网上搜索一番 希望有现成的以飨懒人 未果 于是 自己动手 丰衣足食 吧

先来看看最终结果吧 那么接下来文超将介绍两点 共四种方法

安装完后您将看到 MVC 节点下多了一个 MVC View 嵌套的母版页 模板 嗯 中文字在英文堆里特别显眼

一是大众做法 敲多两行代码 忍着点也能活 等微软的更新(三种)

二是文超写文章的目的所在 使用自制的土q

文超所指的是在MVC尚未提供而又想要得到 嵌套的母版页 一样的效果时的做法 其实如大家所知 要在 MVC 下实现这功能相当简单 为方便演示例子 文超对默认的MVC项目里的 site master 进行了人工改造 在母版里加了几个 ContentPlaceHolder

<%@ Master Language= C# Inherits= System Web Mvc ViewMasterPage %>

<!DOCTYPE PUBLIC //W C//DTD XHTML Strict//EN strict dtd ><xmlns= ><head runat= server >    <title><asp:ContentPlaceHolder ID= TitleContent runat= server /></title>    <link stylesheet type= text/css />    <asp:ContentPlaceHolder ID= HeaderContent runat= server /></head>

<body>    <div>        <h >这儿是头</h >        <div>            <asp:ContentPlaceHolder ID= BodyContent runat= server />            <h >这儿是其他内容</h >        </div>        <h >这儿是脚</h >    </div></body></>

方法一

接着文超再在 Views\Shared 下新建一个 Article Master 母版

要让 Article Master作为 Site Master 的嵌套母版 只需要将首行的 <%@ Master Language= C# Inherits= System Web Mvc ViewMasterPage %>加入 MasterPageFile 属性 并将其值填入指定嵌套的母版 并去掉所有 HTML 代码 敲入与嵌套母版 site master 中的 ContentPlaceHolder 对应一致的 Content 即可 按文超的例子 去掉了首行声明以外的所有 HTML 以后 并厌恨其烦地敲了这些代码 Article Master 应该长成这样

<%@ Master Language= C# MasterPageFile= ~/Views/Shared/Site Master Inherits= System Web Mvc ViewMasterPage %>

<asp:Content ID= Content ContentPlaceHolderID= TitleContent runat= server ></asp:Content><asp:Content ID= Content ContentPlaceHolderID= HeaderContent runat= server ></asp:Content><asp:Content ID= Content ContentPlaceHolderID= CSSContent runat= server ></asp:Content><asp:Content ID= Content ContentPlaceHolderID= BodyContent runat= server ></asp:Content>

方法二

这也是文超之前使用的办法 使用ViewContentPage你可以免除了敲入这部分代码的劳累

<asp:Content ID= Content ContentPlaceHolderID= TitleContent runat= server ></asp:Content>

<asp:Content ID= Content ContentPlaceHolderID= HeaderContent runat= server ></asp:Content>

<asp:Content ID= Content ContentPlaceHolderID= CSSContent runat= server ></asp:Content>

<asp:Content ID= Content ContentPlaceHolderID= BodyContent runat= server ></asp:Content>

但是你要做两件事情

    ViewContentPage 生成的文件名扩展名是 aspx 你需要将它修改为 master 扩展名

    修改首行的 page 指令为 master 指令 例如

<%@ Master Language= C# MasterPageFile= ~/Views/Shared/Site Master Inherits= System Web Mvc ViewMasterPage %>

方法三

方法三是使用 ASP NET WebForm 的 嵌套的母版 模板 这个大家应该都很熟悉 你可能要做的也是两件事情

    将多余的 master cs 及 designer cs 删掉

    将首行的多余属性去掉 将 Inherits 属性值设置为: System Web Mvc ViewMasterPage

方法四

这是本文的核心所在 这种方法使用自制模板 一次性填补上述三种方法的不足 既不用如方法一那样敲键盘 也不用像方法二那样修改 master 指令 更不用像方法三那样删文件 一劳永逸 一箭三雕 一石三鸟 一举三得 的的确确 确确实实 实实在在让文超舒心 首先文超在这个目录下(MVC项模板目录)

C:\Program Files\Microsoft Visual Studio \Common \IDE\ItemTemplates CSharp\Web\MVC

找到这个压缩文件

MvcViewContentPageItemTemplatev cs zip

其实这就是方法二所使用的MVC View Content Page项模板 解压到任意一个文件夹(文超解压到桌面去了 文超的桌面非常的乱 我相信大部分程序员的桌面都是乱的一团糟的)

你将得到两样东西

Views 文件夹

MvcViewNestedMasterPageItemTemplatev cs vstemplate

这份文件正是模板定义 是一份 XML 文件 接下来进行人工改造 改造的结果是这样

<VSTemplate Version= xmlns= Type= Item >  <TemplateData>    <DefaultName>ViewNestedMasterPage Master</DefaultName>    <Name Package= {DC FBF c AAA F B F } ID= >MVC View 嵌套的母版页</Name>    <Icon Package= { c c ef c f b c f} ID= />    <Description Package= {DC FBF c AAA F B F } ID= >MVC View 继承自其他母版页的母版页</Description>    <ProjectType>CSharp</ProjectType>    <SortOrder></SortOrder>    <SupportsMasterPage>true</SupportsMasterPage>    <NumberOfParentCategoriesToRollUp></NumberOfParentCategoriesToRollUp>    <RequiredFrameworkVersion></RequiredFrameworkVersion>    <TemplateGroupID>MVC</TemplateGroupID>    <ShowByDefault>false</ShowByDefault>  </TemplateData>  <TemplateContent>    <CustomParameters>      <CustomParameter Name= $language$ Value= C# />      <CustomParameter Name= $SelectMaster$ Value= true />      <CustomParameter Name= $viewdatatype$ Value= />      <CustomParameter Name= $usingviewdatatype$ Value= />      <CustomParameter Name= $ParentExtension$ Value= master />      <CustomParameter Name= $ChildExtension$ Value= cs />    </CustomParameters>    <References />    <ProjectItem SubType= TargetFileName= $fileinputname$ Master ReplaceParameters= true >Views\Home\ViewNestedMasterPage Master</ProjectItem>  </TemplateContent>  <WizardExtension>    <Assembly>Microsoft VisualStudio Web Extensions Version= Culture=neutral PublicKeyToken= bf ad e </Assembly>    <FullClassName>Microsoft VisualStudio Web Mvc ItemTemplateWizard</FullClassName>  </WizardExtension></VSTemplate>

第二步进入到 Views\Home 找到ViewContentPage aspx 文件 将其删除 然后在此文件夹内创建一份 master 文件 据MvcViewNestedMasterPageItemTemplatev cs vstemplate 的改造结果 这份文件需要命名为 ViewNestedMasterPage Master 这份 master 文件的内容如下

<%@ Master Language= C#   MasterPageFile= $MasterPage$ Inherits= System Web Mvc ViewMasterPage %>

$ContentTags$

第三步改完后将其压缩为 ZIP 压缩包(选中 Views 文件夹和 MvcViewNestedMasterPageItemTemplatev cs vstemplate 后右击 >发送到 >压缩(zipped)文件夹)为它起个统一风格的名字 MvcViewNestedMasterPageItemTemplatev cs zip

因为时间关系文超已经制作好这份文件了 点击此处下载 接着你只需要从第四步开始

第四步将ZIP文件复制到刚才 ViewContentPage 项模板同一位置

C:\Program Files\Microsoft Visual Studio \Common \IDE\ItemTemplates CSharp\Web\MVC

第五步添加项模板到 VS

无论你是用 CMD 还是在VS的快捷方式上(别忘记安装完后设置回原来路径)修改都可以 你需要使用 setup 选项将创建的项模板添加到 VS 中去 执行下面命令行

C:\Program Files\Microsoft Visual Studio \Common \IDE\devenv exe /setup

lishixinzhi/Article/program/ASP/201311/21717

MVC没有模板页,只有LayoutPage,所有的视图都可以当做LayoutPage,不过一般LayoutPage会有最基本的@RenderBody()方法调用,这样才能渲染使用当前页作为LayoutPage的页面,可以通过@RenderSection来定义区块(类似于模板页内的ContentPlaceholder)可以在引用页面内使用@section来定义替换@RenderSection的内容。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/7961370.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存