2010-06-12 64 views
0

我正在開發一個C#/ SQL VS 2008網站應用程序,我試圖在我的site.master文件中設置斷點 - 有沒有辦法做到這一點?這個文件的內容是:如何調試SITE.MASTER ASPX文件?

<%@ 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) 
    { 

    } 
} 

回答

1

您可以在代碼隱藏中設置斷點,並且javascript調試將一如既往(或不良)。主頁面只是另一個aspx頁面;沒什麼不同。

+0

好的,我在後面的PageLoad代碼中設置了一個斷點,但是這個當前是空的。我可以添加什麼代碼來調試ASPX文件? 查看更新後的描述。 – salvationishere 2010-06-12 15:25:07

+0

問題是,您想要調試的母版頁是什麼?母版頁中的所有內容都是標記,而不是可執行代碼。如果標記出現問題,Visual Studio將提供錯誤和警告,或者您可以嘗試使用Resharper之類的工具,這會爲您提供許多其他診斷信息。 – 2010-06-12 17:09:10

1

你應該把斷點在後面的代碼。即PageLoad。

所以你的情況隱藏文件中的代碼是:Site.master.cs

我masterpages背後的代碼大多是空的(像你有)。它的主要目的是定義你的網站的結構,它包含你的「真實內容」的佔位符。

您可能希望在主頁面的代碼隱藏中放置一些邏輯的場景是,例如,當您要在網站的每個頁面的底部生成Google地圖javascript(來自數據庫)時。

+0

是的,我做了,但目前這是空的。查看更新的說明。 – salvationishere 2010-06-12 15:26:15

+0

它現在是空的,但這是你應該把你的用戶界面邏輯/演示文稿代碼 – 2010-06-12 15:50:17

+0

你可以解釋這個地方? – salvationishere 2010-06-12 16:16:43