zoukankan      html  css  js  c++  java
  • asp.net 从静态页Post发送数据到服务端页

    今天在研究Post数据发送问题

    要实现在 .html Post到.aspx页

    我在.html页面写下这些测试代码

            <form action="Default2.aspx" method="post">
                <input id="TextBox1" type="text"  />
                <input id="Submit1" type="submit" value="submit" />
            </form>

    在Default2.aspx.cs页面中写

    Response.Write(Request.Form["TextBox1"].ToString());

    怎么也获取不了.html页面中的数据,

    后来把.html改成.aspx的动态页,代码不变,测试发现还是不行,

    后来在HTML控件中添加了runat="server",

        <form action="Default2.aspx" method="post">
            <input id="TextBox1" type="text" runat="server" />
            <input id="Submit1" type="submit" value="submit" />
        </form>

    发现数据就能传到Default2.aspx中了,

    不删除runat="server" 把页面改回静态页,又不能传送了。

    网上找了很多代码说,静态页发来的数据只能用Request.Files[]来获取,

    就在Default2.aspx.cs页面中写

    Response.Write(Request.Files["TextBox1"].ToString());

    还是不能获取数据,

    后来在万般无奈之时分析加runat="server"的动态测试页发现,

    动态页发到客户端会在标签中加入name="TextBox1",

    于是在静态测试页中直接加入name="TextBox1"

    发现Default2.aspx.cs中可以获取值了。

    从中得出一结论,在ASP.NET中,POST传值是根据name属性来区分不同控件的

    Request.Form["TextBox1"]是在查找表单中name="TextBox1"的控件而不是ID="TextBox1"的控件

    //------------------------------------------

    asp.net控件<form >为什么不能post到其他页 ??

    办法:默认都是到当前页,在action里加也是没用的,应该在form中加onsubmit="this.aciton='xxx.aspx'";注意取值的时候用Request

    FORM里套FORM当然不行。又想用VS的服务器处理控件,又想要POST,这是违背微软的意愿的。

    并且在不带runat=server的表单上不要使用<asp:imagebutton,只能用type=submit


    <form runat=server action="xxx.aspx">

    </form>

  • 相关阅读:
    智能制造及其十大关键技术
    浅谈华为验厂对MES系统的要求
    aps系统切换切记“三要三不要”
    周黑鸭借力MES,推进智能生产
    MES助力伊利集团打造智慧工厂
    智能制造下一个风口:工业智能
    大规模定制模式之于MES的三点思考
    APS中生产计划排程模块的基本原理
    通读审计之wiinews
    wiinews sql注入漏洞分析
  • 原文地址:https://www.cnblogs.com/Fooo/p/1457198.html
Copyright © 2011-2022 走看看