Asp.net常见提交方式

本文介绍了两种常见的网页数据提交方式:表单提交与Ajax提交。表单提交通过HTML表单元素实现,而Ajax提交则利用JavaScript进行异步数据交换。文章详细展示了这两种方式的具体实现方法,并提供了前后端交互实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

提交不过两大类,表达提交与ajax提交


一:表单提交

     html

[html]  view plain  copy
  1. <form action="TestWebspx.aspx"  method="post">  
  2.         <input  type="text" name="username"/>  
  3.         <input  type="submit" value="submit"/>  
  4.     </form>  
     后台获取提交的数据并返回前台

[csharp]  view plain  copy
  1. public partial class TestWebspx : System.Web.UI.Page  
  2.     {  
  3.         protected void Page_Load(object sender, EventArgs e)  
  4.         {  
  5.             string username = Request["username"];  
  6.             Response.Write("your input:" + username);  
  7.         }  
  8.     }  

二:Ajax处理


    方法一:

       前端

[javascript]  view plain  copy
  1. var kmtcb = {}  
  2.   
  3.        kmtcb.search = function ()  
  4.        {  
  5.            var qyport = $("#qyport").val();  
  6.            var carrier = $("#carrier").val();  
  7.            var number = $("#number").val();  
  8.   
  9.   
  10.            $.ajax({  
  11.                url: "get_b.aspx?act=Search",  
  12.                type: "post",  
  13.                data: { qyport: qyport, carrier: carrier,number:number},  
  14.                success: function (result) {  
  15.                    var dataObj = eval("(" + result + ")");//转化成json对象  
  16.                    alert(dataObj.Carrier);  
  17.                    alert(dataObj.Qyport);  
  18.                    alert(dataObj.Number);  
  19.                },  
  20.                error: function (result)  
  21.                {  
  22.                    console.log(result);  
  23.                    alert(result);  
  24.                }  
  25.            })  
  26.        }  
       后端

   

[csharp]  view plain  copy
  1. public void Search()   
  2.     {  
  3.           
  4.   
  5.         string qyport = Request["qyport"];  
  6.         string carrier = Request["carrier"];  
  7.         string number = Request["number"];  
  8.   
  9.         T t = new T();  
  10.         t.Carrier = "1234";  
  11.         t.Qyport = "aaaa";  
  12.         t.Number = "yunjia001";  
  13.         string jsonstr = JsonConvert.SerializeObject(t);  
  14.   
  15.         Response.Clear();  
  16.         Response.Write(jsonstr);  
  17.         Response.End();  
  18.     }  



    方法二:

[javascript]  view plain  copy
  1. $(function () {  
  2.   
  3.            $.ajax({  
  4.                type: "post",  
  5.                url: "TestWebspx.aspx/TestJson",  
  6.                contentType: "application/json;charset=utf-8",  
  7.                data: "{'msg':'hello'}",// data: { key: '123', type: 'S' }  
  8.                dataType: "json",  
  9.                success: function (result)  
  10.                {  
  11.                    var dataObj = eval("(" + result.d + ")");  
  12.                    alert(dataObj.msg);  
  13.                }  
  14.            });  
  15.        })  
      这里是因为微软框架默认返回一个  { "d": "后台返回的数据" } 的数据

   所以取我们自己返回的json对象时需要用result.d而且需要eval传化成json对象,或者使用jquery的 $.parseJSON("str");

     后台    

[csharp]  view plain  copy
  1. [WebMethod]  
  2.         public static string TestJson(string msg)   
  3.         {  
  4.             return "{msg:123}";  
  5.         }  
 后台方法一定要是静态的且必须加上[WebMethod]特性否者抛出异常

  

       

   此时post请求没有问题,但如果需要修改成get方式就会出现

  

  只需要加后台方法上加上[ScriptMethod(UseHttpGet = true)]特性

[csharp]  view plain  copy
  1. [WebMethod]  
  2.        [ScriptMethod(UseHttpGet = true)]  
  3.        public static string TestJson(string msg)   
  4.        {  
  5.            return "{msg:123}";  
  6.        }  

http://www.cnblogs.com/acles/articles/2385648.html

原博客地址:https://blog.youkuaiyun.com/aojiancc2/article/details/19075337

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值