【问题标题】:ASPX page not rendering anythingASPX 页面未呈现任何内容
【发布时间】:2011-09-20 23:15:04
【问题描述】:

此页面根本没有呈现;它只是空白。我想不通。我找不到任何 html 错误。

<%@Page Language="C#" AutoEventWireup="true" ValidateRequest="false" CodeBehind="EmailListManagement.aspx.cs" Inherits="Anzalone.Symba.Admin.EmailListManagement" MasterPageFile="~/Symba/MasterPages/Admin.Master" %>

<asp:Content ContentPlaceHolderID="cphMain" runat="server">
 <div style="margin-left: auto; margin-right: auto; width: 700px;">
    <h1>Email List Management</h1>
    <div>
        Select Email List: 
    <asp:DropDownList ID="ddlSelectEmailList" runat="server">
    </asp:DropDownList>
    <br />
    <asp:Button ID="btnComposeEmailView" runat="server" Text="Compose Email" 
        onclick="btnComposeEmailView_Click" /> <asp:Button ID="btnManageListView" 
        runat="server" Text="Manage List" onclick="btnManageListView_Click" />
</div>
<div>
    <asp:MultiView ID="mvEmailListManagement" runat="server" ActiveViewIndex="0">
        <asp:View ID="viewEmpty" runat="server">             
        </asp:View>
        <asp:View ID="viewComposeEmail" runat="server">
        <div style="margin-left: auto; margin-right: auto; width: 700px;">
            <div style="padding-left: 250px; font-size: large; font-weight: bold;">Compose Email</div>
            Subject:&nbsp;<asp:TextBox ID="txtSubject" runat="server" Width="625px"></asp:TextBox>
            <br />
            <asp:TextBox ID="txtEmailMessage" runat="server" TextMode="MultiLine" Rows="20" Width="600"></asp:TextBox>
            <br />
            <div style="margin-left: 250px;">
                <asp:Label CssClass="NotificationMessage" ID="lblEmailMessage" runat="server" Visible="false"></asp:Label>
                <br />
                <asp:Button ID="btnSendEmail" runat="server" Text="Send" 
                    onclick="btnSendEmail_Click" /> <asp:Button ID="btnCancelEmail" 
                    runat="server" Text="Cancel" onclick="btnCancelEmail_Click" />
            </div>
        </div>
        </asp:View>
        <asp:View ID="viewManageList" runat="server">
        <div class="WidgetEditor">
               <div class="row">
                <span class="label">
                  Mailing List Name:
                </span>
                <span class="formw">
                 <asp:TextBox ID="txtMailingListName" runat="server"></asp:TextBox>
                </span>
               </div>
               <div class="row">
                <span class="label">
                  Smtp Server:
                </span>
                <span class="formw">
                  <asp:TextBox ID="txtSmtpServer" runat="server"></asp:TextBox>
                </span>
               </div>
               <div class="row">
                <span class="label">
                    Port:
                </span>
                <span class="formw">
                    <asp:TextBox ID="txtPort" runat="server"></asp:TextBox>
                </span>
               </div>
               <div class="row">
                <span class="label">
                   User Name:
                </span>
                <span class="formw">
                   <asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
                </span>
               </div>
               <div class="row">
                <span class="label">
                   Password:
                </span>
                <span class="formw">
                   <asp:TextBox ID="txtPassword" runat="server"></asp:TextBox>
                </span>
               </div>
               <div class="row">
                <span class="label">
                   Email From:
                </span>
                <span class="formw">
                   <asp:TextBox ID="txtEmailFrom" runat="server"></asp:TextBox>
                </span>
               </div>     
              <div class="row" style="text-align: center;">
                <asp:Label CssClass="NotificationMessage" ID="lblMailingListUpdate" runat="server" Visible="false"></asp:Label>
              </div>
              <div class="row">
                <span class="label"><asp:Button ID="btnSave" runat="server" Text="Save" OnClick="btnSaveMailingListProperties_Click" /> </span>  
                <span class="formw"><asp:Button ID="btnCancel" runat="server" Text="Cancel" onclick="btnCancelManageList_Click"/></span>
              </div>  
        </div>
        <div>
            <asp:GridView ID="gvRecipients" runat="server" AllowPaging="true" AllowSorting="true" AutoGenerateColumns="false"
                OnRowCommand="gvRecipients_OnRowCommand" DataKeyNames="ID">
                <Columns>                      
                    <asp:BoundField DataField="EmailAddress" HeaderText="Email Address" SortExpression="EmailAddress" />
                    <asp:BoundField DataField="LastName" HeaderText="Last Name" SortExpression="UserLastName" />
                    <asp:BoundField DataField="FirstName" HeaderText="First Name" SortExpression="UserFirstName" />                                      
                    <asp:CommandField InsertImageUrl="~/Symba/Images/icoAdd.gif" ShowInsertButton="true"
                        DeleteImageUrl="~/Symba/Images/icoDelete.png" ShowDeleteButton="true" />                     
                </Columns>
             </asp:GridView>
         </div>
        </asp:View>
    </asp:MultiView>
</div>
</div>
</asp:Content>

有什么想法吗?

查看源渲染:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=windows-1252" http-equiv=Content-Type></HEAD>
<BODY></BODY></HTML>

这里是母版页:

  <%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Admin.master.cs" Inherits="Anzalone.Symba.MasterPages.Admin" %>

<!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>Admin</title>
    <asp:ContentPlaceHolder ID="head" runat="server">
    </asp:ContentPlaceHolder>

<link href="../Styles/CSS/Symba.css" rel="stylesheet" type="text/css" />    

<script type="text/javascript" src="../../tinymce/jscripts/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript" src="../Scripts/SymbaScripts.js"></script>

<script type="text/javascript">
    tinyMCE.init({
        // General options
        mode: "textareas",
        theme: "advanced",
        plugins: "pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,wordcount,advlist,autosave",

        // Theme options
        theme_advanced_buttons1: "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect",
        theme_advanced_buttons2: "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
        theme_advanced_buttons3: "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
        theme_advanced_buttons4: "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak,restoredraft",
        theme_advanced_toolbar_location: "top",
        theme_advanced_toolbar_align: "left",
        theme_advanced_statusbar_location: "bottom",
        theme_advanced_resizing: true,
        relative_urls: false,
        editor_deselector: "mceNoEditor",


        // Example content CSS (should be your site CSS)
        // using false to ensure that the default browser settings are used for best Accessibility
        // ACCESSIBILITY SETTINGS           
        // Use browser preferred colors for dialogs.
        browser_preferred_colors: true,
        detect_highcontrast: true,

        // Drop lists for link/image/media/template dialogs
        template_external_list_url: "lists/template_list.js",
        external_link_list_url: "lists/link_list.js",
        external_image_list_url: "lists/image_list.js",
        media_external_list_url: "lists/media_list.js",

        // Style formats
        style_formats: [
        { title: 'Bold text', inline: 'b' },
        { title: 'Red text', inline: 'span', styles: { color: '#ff0000'} },
        { title: 'Red header', block: 'h1', styles: { color: '#ff0000'} },
        { title: 'Example 1', inline: 'span', classes: 'example1' },
        { title: 'Example 2', inline: 'span', classes: 'example2' },
        { title: 'Table styles' },
        { title: 'Table row 1', selector: 'tr', classes: 'tablerow1' }
    ],

        // Replace values for the template plugin
        template_replace_values: {
            username: "Some User",
            staffid: "991234"
        },
        valid_elements: "*[*]",
        extended_valid_elements: "*[*]"
    });
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
    <asp:ContentPlaceHolder ID="cphMain" runat="server">

    </asp:ContentPlaceHolder>
</div>
</form>
</body>
</html>

它也出现在 Visual Studio 设计视图中。

【问题讨论】:

  • 是否依赖母版页在 ContentPlaceHolder cphMain 上呈现页面?查看渲染页面的 HTML 源代码会显示什么?
  • 见上文。是的,它依赖于母版页,但其他页面正在使用母版页并呈现正常。
  • 对不起,我第一次错过了。我很想暂时删除 asp:content 标签和 masterpagefile 元素,然后看看它是如何呈现的。然后将呈现的 HTML 通过 HTML 验证器传递,以查看它是否一切正常并且如您所料。考虑到上面的格式,很难确定可能有什么问题。
  • 我把母版页拿出来了,还是有同样的问题。有没有可能是项目出了问题。这很奇怪,因为如果我注释掉我在代码隐藏中访问的一些 asp 标记,它不会破坏构建。我已经尝试过清洁,但仍然……没有。
  • HTML 验证器将确定呈现的 HTML 是否有效。只需搜索谷歌或查看类似的内容; validator.w3.org

标签: c# asp.net html iis


【解决方案1】:

我怀疑它与您那里的 HTML 有任何关系。要诊断它,请创建一个仅包含熊必需品的全新页面。例如,保留在母版页中,但删除 Inherits 和所有其他废话。尝试以下方法;

<%@Page Language="C#" AutoEventWireup="true" ValidateRequest="false" CodeBehind="MyNewPage.aspx.cs" MasterPageFile="~/Symba/MasterPages/Admin.Master" %>

<asp:Content ID="Content4" ContentPlaceHolderID="head" runat="server">
<%-- Something in the head  --%>
</asp:Content>

<asp:Content ID="Content3" ContentPlaceHolderID="cphMain" runat="server">
bah
</asp:Content>

作为额外的帮助,在页面和母版页的代码隐藏中放置断点以查看它是否正在加载。

一旦正常工作,请重新添加上面列出的内容以确定导致问题的原因。它可能是页面代码隐藏中的某些内容。

【讨论】:

  • 其他页面有效。我正在逐步完成并一次添加一些小片段。当我找到它时,我会让大家知道它是什么。
  • 只是出于好奇,如果你完全去掉对母版页的依赖,你后面代码中的断点会被命中吗?我的意思是,从 @Page 指令以及 asp:Content 元素中删除 MasterPageFile 元素。
  • 不,问题是内容占位符已添加到 head 部分,并在代码隐藏中结合了错误的回调函数签名。令人讨厌的是,我没有收到任何有用的错误消息——只是一个空白屏幕。谢谢
  • 哈,我的伙伴已将代码放入 Global.asax.cs 文件中以抑制错误消息。
【解决方案2】:

仔细检查母版页文件的链接:

MasterPageFile="~/Symba/MasterPages/Admin.Master"

然后是 Content 元素的名称:cphMain

【讨论】:

  • 这与我用于该目录级别的所有其他页面的链接相同。 cphMain 也会在智能感知中弹出,所以我认为所有这些都是正确的,因为 Visual Studio 将其选中。
  • 母版页源将有助于调试。
【解决方案3】:

您是否选择此页面作为启动页面。否则检查母版页是否与ContentPlaceHolderID="cphMain" 匹配。

【讨论】:

  • 这不是一个启动页面,是的 ContentPlaceHolderID 匹配。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多