我在a.aspx页面都用的<input ....>这样的HTML控件问题
我认为有2种方式提交表单,用一个服务器控件的<BUTTON...>,之后再CLICK事件中添加代码提交问题1:我用URL方式,把控件当作参数传递,这样的方式安全嘛问题2:我用server.transfer方式,另外一个页面b.aspx可以收到a.aspx中的FORM表单中的值吗?问题3:比如TextBox控件,我用HTML控件,与用服务器控件,一样嘛?问题4:提交时候不用服务器控件的《BUTTON》,而是用SUBMIT,是怎么提交FORM的?,,,和用服务器控件的CLICK事件哪个好问题有点长,,,希望大哥大姐们不吝赐教,,,小弟拜谢

解决方案 »

  1.   

    问题1:我用URL方式,把控件当作参数传递,这样的方式安全嘛
    用post 会比用 get 安全。而且用get方法对大小有限制问题2:我用server.transfer方式,另外一个页面b.aspx可以收到a.aspx中的FORM表单中的值吗?
    可以,不过页面地址不会变化。问题3:比如TextBox控件,我用HTML控件,与用服务器控件,一样嘛?
    在客户端来看都是一样的,只不过服务器控件封装了一些服务器端的事件,属性和视图。问题4:提交时候不用服务器控件的《BUTTON》,而是用SUBMIT,是怎么提交FORM的?,,,和用服务器控件的CLICK事件哪个好
    提交表单可以 用 <input type="submit" ... /> <input type="image" ... /> 来自动提交
    亦可以用 <input type="button" onclick="document.getElementById('form1').submit();" ../>来手动提交
    。net里面也可以用自带的__doPostBack来提交表单。
      

  2.   

    补充一下,,,是不是用server.transfer以后,,,页面中的FROM中的控件,不管是HTML,还是服务器控件,都能在b.aspx中用request.form[]得到?
      

  3.   

    问题1:
    可以把参数据用Server.UrlEncode加密,然后用Server.UrlDecode解密,应该是安全的问题2:
    可以
    问题3:
    runat=server就是表示要在服务器端运行,增加了服务器的负担,一个人用无所谓,人流量大的时候会有点影响。 
    而一般的html控件是在客户端的,减轻了服务器的负担。
      

  4.   

    问下,,用URL传值是GET方式,,那POST方式怎么用?
      

  5.   

    在 form表单上有个 method ,值为 get / post, 默认是 post
      

  6.   

    server.transfer不是POST方式传值吗?
      

  7.   

    补充一下
    对于问题2好像一般需要通过PreviousPage来读取表单值
    对于问题3HTML元素在runat=server后就可以通过ID在后台代码中访问
      

  8.   

    问题2:我用server.transfer方式,另外一个页面b.aspx可以收到a.aspx中的FORM表单中的值吗?
    没问题。
    这种方法更好的体现了面向对象的思想。
    不过地址栏中显示的地址还是a.aspx