当我在ASP.NET页面上查看源代码时,我得到以下代码段:
.aspx文件看起来像这样:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="NaturalDateDemo._Default" %>
两个代码块(文字代码和内容/WebResource.axd
)似乎与基于JavaScript的回发相关,我想不出任何理由我的页面需要JavaScript来进行回发.
这是做什么的?
它来自哪里?
可我摆脱它?
我怎么能摆脱它?
这个问题来自的页面
谷歌的一项工作发现这表明验证控件会导致这种情况,但我认为我没有任何验证控件.
WebResource.axd
详细查看文件显示了很多看起来是锅炉板功能的东西,我找不到任何地方的参考.
经过进一步调查后,似乎我的提交按钮没有按照我的想法进行,因为它的onclick
处理程序中有一些JavaScript .但是,使用FireBug我可以看到页面正在进行完全刷新(HTTP响应具有完整的页面文本),所以我不知道那是什么.OTOH我现在看到一个__EVENTVALIDATION
不应该存在的论点(因为没有什么可以验证的)所以查找可能会很有趣.
似乎基于下面的回答者,我遇到的是,即使基本的HTML表单可以正常运行,ASP.NET进行回发的默认(仅?)方式也是通过JavaScript进行的.(就我个人而言,我认为这是MS部分的一个愚蠢的设计选择;在你要求它做一些没有它的情况下无法完成的事情之前,ASP.NET不应该引入JavaScript依赖.)
基于这种观点,有几个人推测我不知道我在说什么.(我会因为使用术语"post-back"而错过这个问题,认为它只暗示基于JS的东西.)虽然我不知道ASP.NET的实现细节,但我知道一般的HTTP如何POST的东西是有效的,我的意见是基于考虑如何实现我自己的解决方案,而不仅仅是基于我希望它如何工作.
答案比我在这里看到的要简单得多:只需PostBackUrl
从中移除Button
所有JavaScript就像魔术一样消失.
如果没有JavaScript,HTML按钮无法提交到指定页面以外的其他页面.然而,ASP.NET确实提供了一种可能性,要做到这一点外的开箱如果指定
PostBackUrl
一个Button
.这就是JavaScript的意义:支持非默认的回发.
在这种特殊情况下你PostBackUrl
是一样的
action
,但显然ASP.NET没有特殊情况下,这和任何非空字符串触发此包装脚本.