BCS*_*BCS 5 javascript asp.net webresource.axd
当我在ASP.NET页面上查看源代码时,我得到以下代码段:
<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['form1'];
if (!theForm) {
theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
//]]>
</script>
<script src="/WebResource.axd?d=5lheyan7fritNTjDRpG8vA2&t=633734967316503584" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
.aspx文件看起来像这样:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="NaturalDateDemo._Default" %>
<form id="form1" runat="server" enableviewstate="False">
Enter something to parse:<br />
<asp:TextBox ID="TextBox1" runat="server" Width="270px"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Parse" PostBackUrl="Default.aspx" CausesValidation="False" EnableViewState="False" UseSubmitBehavior="true" />
</form>
Run Code Online (Sandbox Code Playgroud)
两个代码块(文字代码和内容/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的东西是有效的,我的意见是基于考虑如何实现我自己的解决方案,而不仅仅是基于我希望它如何工作.
Rub*_*ben 13
答案比我在这里看到的要简单得多:只需PostBackUrl从中移除Button所有JavaScript就像魔术一样消失.
如果没有JavaScript,HTML按钮无法提交到指定页面以外的其他页面<form action="...">.然而,ASP.NET确实提供了一种可能性,要做到这一点外的开箱如果指定PostBackUrl一个Button.这就是JavaScript的意义:支持非默认的回发.
在这种特殊情况下你PostBackUrl是一样<form>的action,但显然ASP.NET没有特殊情况下,这和任何非空字符串触发此包装脚本.
| 归档时间: |
|
| 查看次数: |
12941 次 |
| 最近记录: |