Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 避免ASPX页面中的标准HTML输出_C#_Asp.net_Http - Fatal编程技术网

C# 避免ASPX页面中的标准HTML输出

C# 避免ASPX页面中的标准HTML输出,c#,asp.net,http,C#,Asp.net,Http,我肯定这是RTFM,但我就是不知道我应该用哪种FM 我试图提供一个JNLP(JavaWebStart)文件(一种XML格式),ASP.Net坚持将HTML代码附加到响应体中 更多细节:我有一个.aspx文件和一个附带的.aspx.cs文件。这些是通过“新建页面”向导生成的。在.aspx.cs文件中的Page\u Load()中,我生成了一些XML,做Response.ContentType=“application/x-java-jnlp-file”,您知道这个练习 但是,.aspx文件包含:

我肯定这是RTFM,但我就是不知道我应该用哪种FM

我试图提供一个JNLP(JavaWebStart)文件(一种XML格式),ASP.Net坚持将HTML代码附加到响应体中

更多细节:我有一个.aspx文件和一个附带的.aspx.cs文件。这些是通过“新建页面”向导生成的。在.aspx.cs文件中的
Page\u Load()
中,我生成了一些XML,做
Response.ContentType=“application/x-java-jnlp-file”
,您知道这个练习

但是,.aspx文件包含:

<%@ Page Language="C#" CodeBehind="MyPage.aspx.cs" Inherits="MyProj.MyPage" EnableSessionState="False" %>

<!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>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>

    </div>
    </form>
</body>
</html>

无标题页
此代码将附加到输出中

我如何避免这种情况?我试着从
Page\u Load()
调用
Response.End()
,但据报道这是邪恶的,它抛出了严重的异常
Response.Close()
甚至更糟,并破坏了HTTP。我还试图简单地从正文中删除所有HTML,但ASP随后抱怨说,它需要一个
来实现所谓的“主题CSS”(我不确定这是什么意思)

有线索吗


谢谢

使用
响应。清除()
或将其从页面中删除

必须


这使您能够对信息的直接输出进行所有必要的控制。本文甚至给出了一个输出图像的示例。

只需将页面设置为:

<%@ Page Language="C#" CodeBehind="MyPage.aspx.cs" Inherits="MyProj.MyPage" EnableSessionState="False" %>

删除页面中的其余HTML,并按照海报的建议进行回复。Clear()

重要的是您将在结束后删除所有内容

<%@ Page Language="C#" CodeBehind="MyPage.aspx.cs" Inherits="MyProj.MyPage" EnableSessionState="False" %> declaration.
声明。

您可以通过在页面指令中添加EnableTheming=“false”和Theme=”“来关闭主题

所以你的页面会变成

<%@ Page Language="C#" CodeBehind="MyPage.aspx.cs" 
         Inherits="MyProj.MyPage" EnableSessionState="False" 
         EnableTheming="false" Theme=""%>


在任何输出之前添加Response.Clear()应该可以正常工作。不管布拉德的评论如何恰到好处,这是一个完美的回答

我是否遗漏了什么,或者这是一个使用?+1的好时机:这个问题显示了研究的努力;它非常有用而且清晰,第一行让我咯咯笑了起来:)您是否考虑过创建一个基于模板输出xml的自定义处理程序(ashx)?如果模板相当复杂,可以使用T4模板或xslt生成所需的xml。如问题中所述,将其从页面中删除不起作用。但是,何时调用Response.Clear()?我想在Page_Load()中不是这样,因为这似乎是在呈现.aspx中的HTML之前调用的。好吧,多亏了你的回答,我更努力地尝试了“从页面中删除它!”结果是在
页面
指令中添加
EnableTheming=“False”stylesheetheme=“”
(在我的例子中)。谢谢:-)(我只是先做了
EnableTheming=“False”
这显然不够好)这是提供非html内容的最佳方式。无论是HTML、图像、文件等。它快速、轻量级(没有完整的页面生命周期),您可以完全控制返回浏览器的内容。将此标记为答案,因为它已成为我的快速修复。不过,我明白了,handlers应该是真正的答案。谢谢大家!