如何调试SITE.MASTER ASPX文件?

时间:2010-06-12 15:14:46

标签: c# visual-studio-2008

我正在开发一个C#/ SQL VS 2008网站应用程序,我正在尝试在我的site.master文件中设置断点 - 有没有办法做到这一点?该文件的内容是:

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="Site.master.cs" Inherits="Site" %>

<!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 id="Head1" runat="server">
    <title>Forms Authentication, Authorization, and User Accounts</title>
    <link href="Styles.css" rel="stylesheet" type="text/css" />
</head>
<body>
    <div id="wrapper">
        <form id="form1" runat="server">
        <div id="header">
            <span class="title">User Account Tutorials</span><br />
            <span class="breadcrumb">
                <asp:SiteMapPath ID="SiteMapPath1" runat="server">
                </asp:SiteMapPath>
            </span>
        </div>
        <div id="content">
            <asp:ContentPlaceHolder ID="MainContent" runat="server">
                <!-- Page-specific content will go here... -->
            </asp:ContentPlaceHolder>
        </div>
        <div id="navigation">
            <asp:ContentPlaceHolder ID="LoginContent" runat="server">
                <asp:LoginView ID="LoginView1" runat="server">
                    <LoggedInTemplate>
                        Welcome back,<asp:LoginName ID="LoginName1" runat="server" />
                    </LoggedInTemplate>
                    <AnonymousTemplate>
                        Hello, stranger!
                    </AnonymousTemplate>
                </asp:LoginView>
                <br />
                <br />
            </asp:ContentPlaceHolder>
            <asp:LoginStatus ID="LoginStatus1" runat="server" LogoutAction="Redirect" LogoutPageUrl="~/Logout.aspx" />
            <ul>
                <li>
                    <asp:HyperLink runat="server" ID="lnkHome" NavigateUrl="~/Default.aspx">Home</asp:HyperLink>
                </li>
                <asp:Repeater runat="server" ID="menu" DataSourceID="SiteMapDataSource1">
                    <ItemTemplate>
                        <li>
                            <asp:HyperLink ID="lnkMenuItem" runat="server" NavigateUrl='<%# Eval("Url") %>'><%# Eval("Title") %></asp:HyperLink>

                            <asp:Repeater ID="submenu" runat="server" DataSource="<%# ((SiteMapNode) Container.DataItem).ChildNodes %>">
                                <HeaderTemplate>
                                    <ul>
                                </HeaderTemplate>
                                <ItemTemplate>
                                    <li>
                                        <asp:HyperLink ID="lnkMenuItem" runat="server" NavigateUrl='<%# Eval("Url") %>'><%# Eval("Title") %></asp:HyperLink>
                                    </li>
                                </ItemTemplate>
                                <FooterTemplate>
                                    </ul>
                                </FooterTemplate>
                            </asp:Repeater>
                        </li>
                    </ItemTemplate>
                </asp:Repeater>
            </ul>
            <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" ShowStartingNode="false" />
        </div>
        </form>
    </div>
</body>
</html>

我的site.master.cs文件内容:

public partial class Site : System.Web.UI.MasterPage
{
  protected void Page_Load(object sender, EventArgs e)
  {

  }
}

3 个答案:

答案 0 :(得分:1)

您应该将断点放在代码中。即PageLoad。

因此,在您的情况下,文件背后的代码是:Site.master.cs

我的主页背后的代码大部分都是空的(就像你一样)。它的主要目的是定义您网站的结构,它包含了“真实内容”的占位符。

您可能希望在主页面的代码隐藏中添加一些逻辑的场景,例如,当您想要在网站的每个页面底部生成Google-maps javascript(来自数据库)时。

答案 1 :(得分:1)

您可以在代码隐藏中设置断点,javascript调试将一如既往地好(或坏)。母版页只是另一个aspx页面;没什么不同。

答案 2 :(得分:0)

您可以将断点放在PageLoad方法的第一个“{”。

alt text http://i48.tinypic.com/243f7k6.png