如何包含文字控件的大小?

时间:2017-08-09 18:17:44

标签: c# asp.net web-controls

我正在使用ASP.NET网站,我正在使用HttpGetRequest& HttpGetResponse将https://news.google.com/news的内容放入我的一个页面上的文字控件中。

问题是流正在覆盖整个页面。我无法用div或容器来控制大小。所以来自文字的流覆盖了它上面的标签(在它自己的div中)和一个继承自SiteMaster.Master的菜单。

如何将菜单和标签保留在文字控件上方? 代码背后:

        protected void Page_Load(object sender, EventArgs e)
    {
        HttpWebRequest googRequest = (HttpWebRequest)HttpWebRequest.Create("https://news.google.com/news");
        HttpWebResponse resp = (HttpWebResponse)googRequest.GetResponse();
        string googNews = new System.IO.StreamReader(resp.GetResponseStream()).ReadToEnd();

        Literal1.Text = googNews;

        Label1.Text = DateTime.Now.ToLongTimeString();
    }

ASP:

<%@ Page Title="" Language="C#" MasterPageFile="~/SiteMaster.Master" AutoEventWireup="true" CodeBehind="Literally.aspx.cs" Inherits="DNut.Literally" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    <p>
        <asp:Label ID="Label1" runat="server" Font-Names="Arial" Font-Size="Larger" Font-Italic="true"></asp:Label>
    </p>
</asp:Content>

<asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder2" runat="server">
        <div>
            <asp:Literal ID="Literal1" runat="server"></asp:Literal>
        </div>
</asp:Content>

1 个答案:

答案 0 :(得分:0)

根据您收到内容的方式,内容可能包含html标记,head标记和body标记。这不是注入现有html文档中间的有效标记。在另一个html文档中包含这样的整个页面的典型方法是通过iframe标记。

iframe在网络开发世界中有点皱眉,并没有被大量使用,但在这种情况下,它非常适合你想要做的事情。它还有助于保护您的网站免受跨站点脚本(XSS)攻击(试图通过文字标记将标记注入div中。

使用iframe标记,您可以将'src'属性设置为您要显示的网址,并且您不需要literal或相关的c#代码来设置它。

 <asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder2" runat="server">
    <iframe src='https://news.google.com/news'></iframe>
 </asp:Content>

您可以设置iframe的样式,使其具有理想的高度和宽度。