我想在ASP.Net(Visual Studio 2012和.Net 4.0)中使用页面模板。
基页会发出包含正文,html,表单和其他标记的基本模板。这意味着渲染的页面只包含身体部分内部的内容。模板添加页眉和页脚。虽然我还没有完成设计,但我正在研究一个记录here的概念。 (是的,我知道编码实践是不提供链接到页面,这可能会消失,但我不想侧面追踪这个问题。)
每页的部分是:
<%@ Page language="c#" Codebehind="AdvancedPageInheritance.aspx.cs" AutoEventWireup="true" Inherits="PageInheritanceSample.AdvancedPageInheritance" %>
第一行之后的任何东西都是身体的一部分。
如果我将控件拖放到表单上,VS2012会发出如下代码:
<asp:CheckBox ID="CheckBox2" runat="server" OnCheckedChanged="CheckBox1_CheckedChanged" />
<asp:Button ID="Button2" runat="server" Text="Button" />
VS2012自动发出警告,“无法识别的标签前缀或设备过滤器'asp'。”
一种想法是简单地以编程方式添加正文,但这是一个页面。我宁愿使用GUI。
如何避免警告?有更好的方法来做模板吗?那位作者在10年前撰写了这篇文章,所以事情可能会发生变化。警告是可以理解的,但是错误的是,因为有一个表单,正文和html标签,只是不能直接看到。
(我刚刚回答了我的问题,在Vs2012中找到了一个短语并对其进行了一些研究。主页就是答案。显然,微软必须在VS2008或VS2010中加入。我将留下这篇文章,就像其他人一样我可能不知道“母版页”这个概念,可能会像我一样重新编写页面模板。我希望这篇文章能说明其他人的时间。谷歌应该有机会接受ASP.Net和页面模板。)
答案 0 :(得分:1)
理想情况下,您可以使用MasterPage
来布置主模板。
您的Content
页面将具有相应的<asp:Content />
控件,您可以在其中添加内容。要添加内容页面,您需要在Visual Studio中添加一个新的“Web窗体”项,然后通过选中“选择母版页”复选框,您可以选择内容页面应使用的母版页。
请参阅Here for a tutorial on Master Pages
然后您将BasePage
用于网站范围的代码;例如,在大多数页面上需要逻辑的任何东西。您的Content
个网页会继承此BasePage
作为旁注,请参阅此页面Unrecognized tag prefix or device filter 'asp' in VS2012,了解您的“无法识别的代码前缀或设备过滤器'asp'。”消息