【问题标题】:Unable to render html in ascx control page无法在 ascx 控制页面中呈现 html
【发布时间】:2012-12-10 11:25:20
【问题描述】:

这是我的 ascx 控制页面代码

    <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Menu.ascx.cs" Inherits="CrossQueue.Web.Menu" %>
<asp:Label ID="lblMenu" runat="server"></asp:Label>

这是我的 C# 代码

private void CreateMenu()
    {
        StringBuilder menuHtml = new StringBuilder();   
        int profileId = 0;
        MenuBL menuManager = new MenuBL();
        DataTable dtMenu = null;
        if (Session["USR_ID"] != null)
        {
            profileId = Convert.ToInt32(Session["USR_PROFILE"]);
            dtMenu = menuManager.GetAllMenuItemsForProfile(profileId);
            if (dtMenu != null && dtMenu.Rows.Count > 0)
            {
                menuHtml.Append("<table id='tblMenu' cellpadding='0' cellspacing='0' width='939' border='0' align='center'>");
                menuHtml.Append("<tr>");
                menuHtml.Append("<td align='left'>");
                menuHtml.Append(Convert.ToString(Session["USR_USERNAME"]));
                menuHtml.Append("</td>");

                menuHtml.Append("<td width='739' valign='middle' align='right' style='height: 30px;'>");
                foreach (DataRow dr in dtMenu.Rows)
                {
                    if (dr["MenuName"].ToString() == "Profile")
                    {
                        menuHtml.Append("<img src='/images/home_icon.jpg' width='25' height='25' align='middle' /><a href='AllProfile.aspx>Profile</a>&nbsp;");
                    }
                    else if (dr["MenuName"].ToString() == "User")
                    {
                        menuHtml.Append("<img src='/images/home_icon.jpg' width='25' height='25' align='middle' /><a href='AllUsers.aspx>User</a>&nbsp;");
                    }
                }
                menuHtml.Append("</td>");
                menuHtml.Append("</tr>");
                menuHtml.Append("</table>");
            }
            lblMenu.Text = menuHtml.ToString();
        }
    }

当我加载页面时,我只看到一个 html 代码打印为文本而不是渲染。谁能指出可能是什么问题

【问题讨论】:

  • 你得到的确切错误是什么!!!能不能详细点!!!
  • @Prahalad 它实际上是 ascx 控制页面
  • 是的,兄弟!对不起!!!

标签: c# asp.net html ascx


【解决方案1】:

您可以使用文字代替标签。

看到这个 http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.literal.aspx

【讨论】:

【解决方案2】:

您可以让assigning ID 访问div 服务器并设置runat="server" 而不是标签并设置其InnerHTML = menuHtml.ToString();

<div id="div1" runat="server" ></div>

div1.InnerHTML = menuHtml.ToString();

【讨论】:

  • 无需额外引入div 即可。
【解决方案3】:

更改标签

<asp:Label ID="lblMenu" runat="server"></asp:Label>

到字面上

<asp:Literal ID="lblMenu" runat="server" EnableViewState="false"></asp:Literal>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-21
    • 1970-01-01
    • 1970-01-01
    • 2013-02-16
    • 1970-01-01
    • 2018-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多