我开始学习ASP.NET,这是使用Visual Studio Web Dev Express非常烦人的小事。我不断收到错误“内容不被假定为外部'脚本'或'asp:内容'区域” - 所以我将内容放在asp:content
容器中并且它不会消失。我在声明DocType时也遇到了同样的错误。任何解决此问题的建议。另外还有一个注意事项:是否有更好的IDE来代码ASP.NET?
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Hello VS2010</title>
</head>
<body>
<asp:content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<form id="form1" runat="server">
<div>
<asp:Literal ID="Literal1" runat="server">
Hello World
</asp:Literal>
</div>
</form>
</asp:content>
</body>
</html>
母版页
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="Site.master.cs" Inherits="SiteMaster" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head runat="server">
<title></title>
<link href="~/Styles/Site.css" rel="stylesheet" type="text/css" />
<asp:ContentPlaceHolder ID="HeadContent" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form runat="server">
<div class="page">
<div class="header">
<div class="title">
<h1>
My ASP.NET Application
</h1>
</div>
<div class="loginDisplay">
<asp:LoginView ID="HeadLoginView" runat="server" EnableViewState="false">
<AnonymousTemplate>
[ <a href="~/Account/Login.aspx" ID="HeadLoginStatus" runat="server">Log In</a> ]
</AnonymousTemplate>
<LoggedInTemplate>
Welcome <span class="bold"><asp:LoginName ID="HeadLoginName" runat="server" /></span>!
[ <asp:LoginStatus ID="HeadLoginStatus" runat="server" LogoutAction="Redirect" LogoutText="Log Out" LogoutPageUrl="~/"/> ]
</LoggedInTemplate>
</asp:LoginView>
</div>
<div class="clear hideSkiplink">
<asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal">
<Items>
<asp:MenuItem NavigateUrl="~/Default.aspx" Text="Home"/>
<asp:MenuItem NavigateUrl="~/About.aspx" Text="About"/>
</Items>
</asp:Menu>
</div>
</div>
<div class="main">
<asp:ContentPlaceHolder ID="MainContent" runat="server"/>
</div>
<div class="clear">
</div>
</div>
<div class="footer">
</div>
</form>
</body>
</html>
答案 0 :(得分:3)
母版页是一种应用于所有页面的模板。在这里你似乎使用了一个不知道它
MasterPageFile="~/Site.master"
在masterPage中,您拥有所有页面所需的所有内容,以及一个asp:content区域,您可以在其中为每个页面添加内容。
所以在这里你可以尝试删除masterPage引用,或者只是添加和删除asp:content区域中的内容。
Here是关于MasterPages的msdn链接。我认为有必要了解masterPages来学习asp.net。
答案 1 :(得分:1)
新回复:
好吧,好的。
首先,每页首先只有一个表单标记,包括母版页中的页面。
您不需要Web表单上的表单标记或html,正文或标题,只需要母版页。
所以Page.aspx代码应该是:http://codepaste.net/87n474
请注意,您需要在母版页中包含aspx页面中的所有内容区域。
原始回复:
一些事情。
您的文档类型应为:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
请注意资本化的微小差异。
最后,唯一比web dev更好的IDE是Visual Studio的完整版本,没有比最新版本的visual studio更好的创建和调试asp.net网站的版本。