Web页面对象传值Demo

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yenange/article/details/84634230

最近, 论坛上很多人发如何传值的贴子, 于是写一个留底吧:


一、构建后台实体类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace WebApplication1
{
    public class MainInfo
    {
        public int MainId { get; set; }
        public string MainName { get; set; }

        public List<ItemInfo> ItemList { get; set; }
    }

    public class ItemInfo
    {
        public int ItemId { get; set; }
        public DateTime AddTime { get; set; }
        public string ItemName { get; set; }

    }
}

二、前端页面:

<script type="text/javascript">
    function save() {
        var info = {
            MainName: "Mary",
            MainId: 100
        };
        info.ItemList = [];
        info.ItemList.push({ ItemId: 1, ItemName: "m1", AddTime: "2018-11-28" });
        info.ItemList.push({ ItemId: 2, ItemName: "m2", AddTime: "2018-11-29" });

        $.ajax({
            url: "AJAX.ashx",
            data: { info: JSON.stringify(info) },
            dataType: "json",
            async: false,
            success: function (json) {
                alert(json.msg);
            }
        });

    }
</script>
<input type="button" value="Submit" onclick="save()" />

三、用一般处理程序( ashx 文件,无aspx生命周期,效率高 , 如果 mvc 可直接用  action 方法) 来接收:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace WebApplication1
{
    /// <summary>
    /// Handler1 的摘要说明
    /// </summary>
    public class AJAX : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            string str = context.Request["info"];
            MainInfo info = Newtonsoft.Json.JsonConvert.DeserializeObject<MainInfo>(str);

            var r = new {
                success = info != null,
                msg = info != null ? "成功": "失败"
            };

            context.Response.Write(Newtonsoft.Json.JsonConvert.SerializeObject(r));
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

最终, 点击后,前端页面弹出“成功”。

猜你喜欢

转载自blog.csdn.net/yenange/article/details/84634230
今日推荐