“内容不是假定为'脚本'或'asp:内容'区域”

时间:2013-01-18 08:27:33

标签: asp.net .net

我开始学习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>

2 个答案:

答案 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页面中的所有内容区域。

原始回复:

一些事情。

  • 检查您的母版页布局,看看是否有任何内容错位。 (也可以在这里粘贴)
  • 还与您的母版页相关,如果您在asp.aspx页面中放置所有 HTML标记,我认为没有太多意义。

您的文档类型应为:

<!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网站的版本。