如何在asp.net中输出原始javascript
我想将原始javascript输出到aspx响应。使用response.write失败,因为它与javascript一起转储页面中的所有其他asp.net内容,例如:如何在asp.net中输出原始javascript,javascript,.net,asp.net,Javascript,.net,Asp.net,我想将原始javascript输出到aspx响应。使用response.write失败,因为它与javascript一起转储页面中的所有其他asp.net内容,例如: ... <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTAxODk4MjA3OWRk9jVlI2KaQPiVjEC+P0OPYGV74vKjJQZuwD6OaHhb+U0=" /> ... 。。。 ... 是否可以简
...
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTAxODk4MjA3OWRk9jVlI2KaQPiVjEC+P0OPYGV74vKjJQZuwD6OaHhb+U0=" />
...
。。。
...
是否可以简单地将原始文本输出到输出,而不在页面上显示所有其他asp.net内容?我尝试使用以下页面:
<script src="mypage.aspx"></script>
当这个页面包含javascript时,它会触发aspx页面,但是chrome不喜欢它,原因很明显。。。它需要javascript,但它得到的是javascript+标记+.NET注入的东西
请不要评论我为什么这样做!处理非常具体的问题 使用.ashx。然后您可以设置
context.Response.ContentType=“text/javascript”
并只使用Response.Write
使用WebForms将非常困难。我能想到的最好的方法是将MVC添加到您的项目中,这样您就可以更好地控制输出。(是的,MVC和WebForms可以在同一个项目中共存)
通过这种方式,您仍然可以利用
.aspx
语法(或者更酷的Razor语法)生成javascript文件,而无需WebForms将其所有恼人的内容添加到您的输出中。我不确定是否理解您的问题,但您可以尝试以下方法:
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "registerSomething", "doSomething = function(){ ... }", true);
您还可以禁用viewstate等。。。并从aspx文件中删除所有内容
<%@Page ... EnableViewState="false" EnableViewStateMac="false"%>
在aspx文件中不包括任何其他内容,不包含runat=server任何内容。然后使用response.write在代码隐藏中编写javascript。我需要这个,这就是我的解决方案: 创建了一个文件script.aspx,内容是带有页面标题指令的纯javascript。然后在javascript中,我能够插入对静态方法的调用:
<%@ Page Language="C#" ContentType="text/javascript" %>
function someFunction()
{
var someVar;
someVar="<%= MyClass.MyMethod() %>";
}
通用处理程序用于这些情况。首选ashx,如果必须使用aspx,还可以调用Response.Clear()。非常感谢。。。这很有效。然而,我有javascript在我的ashx上调用webmethods,它不太管用,但是弹出窗口工作没有问题。。。还需要解决一些细节…没问题,很高兴能帮上忙!请阅读:我同意上面乔伊的观点:ASHX是做你想做的事情最普遍/最被接受的方式。但是,如果出于某种原因需要在ASPX页面中执行此操作,此答案(来自aepheus)应该会有所帮助。
function someFunction()
{
var someVar;
someVar="Some string returned by my method";
}