0

I'm starting to learn ASP.NET and it's the little things that are really annoying with Visual Studio Web Dev Express. I keep getting the error "Content Not Supposed To Be Outside 'Script' or 'asp:Content' Regions" - so I put content inside an asp:content container and it doesn't disappear. I also get the same sort of error with declaring the DocType. Any suggestions to fix this. Also on an off-note: is there any better IDE's to code 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 Page

<%@ 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>
4

2 回答 2

3

母版页是一种应用于所有页面的模板。在这里,您似乎在不知不觉中使用了它

MasterPageFile="~/Site.master"

在 masterPage 中,您拥有您希望所有页面共有的所有内容和一个 asp:content 区域,您可以在其中为每个页面添加内容。

因此,在这里您可以尝试删除 masterPage 引用或只是在 asp:content 区域中添加和删除内容。

是有关 MasterPages 的 msdn 链接。我认为学习asp.net确实有必要了解masterPages。

于 2013-01-18T08:41:58.970 回答
1

新回复:

哦,那好吧。

因此,首先每个页面只有一个表单标签,包括母版页中的页面。

您不需要 Web 表单上的 form 标记或 html、body 或 head 标记,只需要您的母版页。

所以 Page.aspx 代码应该是这样的:http ://codepaste.net/87n474

请注意,您需要在您的 aspx 页面中包含母版页中可用的所有内容区域。

原回复:

几件事。

  • 检查您的母版页布局,看看其中是否有任何内容错位。(也贴在这里)
  • 同样与您的母版页有关,如果您将所有HTML 标记都放在 asp.aspx 页面中,我认为拥有母版页没有多大意义。

您的文档类型应该是:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

注意大小写的细微差别。

最后,唯一比 web dev express 更好的 IDE 是完整版的 Visual Studio,没有比最新版的 Visual Studio 更好的用于创建和调试 asp.net 站点的版本了。

于 2013-01-18T08:32:51.723 回答