Prototype.js使用问题,控件中有个__VIEWSTATE就不能应用AJAX了
很简单的一段代码,就是不能提交,
如果我把__VIEWSTATE控件删除,或者把="__VIEWSTATE控件的value删除,代码就正常运行到alert(1):
请问原因是什么?怎么能让它正常运行
说明:__VIEWSTATE是asp.net自动生成的,所以不可能删除:
- HTML code
<html xmlns="http://www.w3.org/1999/xhtml" ><head> <title>无标题页</title> <script type="text/javascript" src="prototype.js"></script> <script type="text/javascript"> function login() { new Ajax.Request( 'p2.aspx', { method: 'post', postBody: $('logform').serialize(), onSuccess: function( transport ) { alert(1); } } ); } </script></head><body> <form id="logform"> <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJNzgzNDMwNTMzZGRs+GwJVuBVm9dJahyu9YPtnVNZBw==" /> <input type="button" onclick="login()" value="Login" /> </form></body></html>
[解决办法]
__VIEWSTATE是asp.net用来保持视图状态的一个隐藏字段。你可禁用一下页面的视图看看。
[解决办法]
有没有VIEWSTATE有影响吗?
不管怎么生成都是html
[解决办法]
你写一个文件测试就明白了.
- C# code
<%@ Page Language="C#" %><script type="text/javascript" src="prototype.js"></script><script type="text/javascript"> function test(){ new Ajax.Request( 'p2.aspx', { method: 'post', postBody: $('logform').serialize(), onSuccess: function( transport ) { alert(1); } }); return false; }</script><form id="Form1" runat="server"> <input id="bt001" type="button" value="Click" onclick="test();" /></form>
[解决办法]
我测试没有问题.
- C# code
<%@ Page Language="C#" %><script type="text/javascript" src="prototype-1.6.0.2.js"></script><script type="text/javascript"> function test(){ new Ajax.Request('p2.aspx', { method:'post', postBody:'test1=1&test2=2', onSuccess:function(transport){ alert('test'); } }); return false; }</script><form id="Form1" runat="server"> <input id="bt001" type="button" value="test" onclick="test();" /></form>