MVC4与JSON交互的知识总结

本文介绍了如何在MVC框架中使用JSON进行前后端的数据交互,包括从前端发送JSON数据到后端Controller的方法,以及从后端返回JSON数据到前端进行处理的过程。

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

1.JSON传递单个参数给Controller某个Action方法

[前台js]

复制代码
    $(document).ready(function () {
        var postData = { userId: 4 };
        var url = "@Url.Action("GetUserName")";
         $.ajax({
             async: false,
             type: "POST",
             url: url,
             data: postData,
             cache: false,
             global: false,
             dataType: 'json',
             success: function (data) {
                
             }
         });
    });
复制代码

 

[后台Controller:]

public ActionResult GetUserName(int userId)
{
    ...
}

 

2.JSON传递整型数组给Action
[前台js]

复制代码
$(document).ready(function () {
    var postData = [];
    postData.push({ name: "list_UserId", value: 1 });
    postData.push({ name: "list_UserId", value: 2 });
    postData.push({ name: "list_UserId", value: 3 });

    var url = "@Url.Action("GetUserNameList")";
    $.ajax({
        async: false,
        type: "POST",
        url: url,
        data: postData,
        cache: false,
        global: false,
        dataType: 'json',
        success: function (data) {

        }
    });
 });
复制代码

[Action]

public ActionResult GetUserNameList(List<int> list_UserId)
{
       .....
}

 

3.JSON传递单个对象参数给Action
[前台js]

复制代码
$(document).ready(function () {
    var postData = [];
    postData.push({ name: "user.userId", value: 1 });
    postData.push({ name: "user.userName", value: "小东" });
    postData.push({ name: "user.desc", value: "json高手" });
       
    var url = "@Url.Action("AddUser")";
    $.ajax({
        async: false,
        type: "POST",
        url: url,
        data: postData,
        cache: false,
        global: false,
        dataType: 'json',
        success: function (data) {

        }
    });
});
复制代码

 

[Action]

public ActionResult AddUser(UserObj user)
{
    ....
}

4.JSON传递多个参数给Action
[前台js]

复制代码
$(document).ready(function () {
    var postData = [];
    postData.push({ name: "list_UserId", value: 1 });
    postData.push({ name: "list_UserId", value: 2 });
    postData.push({ name: "list_UserId", value: 3 });

    postData.push({ name: "list_roleName", value: "系统管理员" });
    postData.push({ name: "list_roleName", value: "部门经理" });

    var url = "@Url.Action("GetUsersAndRoles")";
    $.ajax({
        async: false,
        type: "POST",
        url: url,
        data: postData,
        cache: false,
        global: false,
        dataType: 'json',
        success: function (data) {

        }
    });
});
复制代码

[Action]

public ActionResult GetUsersAndRoles(List<int> list_UserId, List<string> list_roleName)
{
    ...
}

 

二:MVC4后台返回JSON给JS前端作处理:

1.返回List集合对象
[前端js]

复制代码
$(document).ready(function () {
    var postData = [];
    postData.push({ name: "list_UserId", value: 1 });
    postData.push({ name: "list_UserId", value: 2 });
    postData.push({ name: "list_UserId", value: 3 });

    var url = "@Url.Action("GetUserObjList")";

    $.ajax({
        async: false,
        type: "POST",
        url: url,
        data: postData,
        cache: false,
        global: false,
        dataType: 'json',
        success: function (data) {
            //将获取user集合初始化下拉框列表
            var options_List = '<option value="">--请选择用户--</option>';
            $.each(data, function (i, user) {
                options_List += "<option value='" + user.userId + "'>" + user.userName + "</option>";
            });
            $('#userList').html(options_List);
        }
    });
});
复制代码

[后台action]

复制代码
public ActionResult GetUserObjList(List<int> list_UserId)
{
    UserObj obj1 = new UserObj();
    obj1.userId = 1;
    obj1.userId = 1;
    List<UserObj> userList = new List<UserObj>();
    userList.Add(new UserObj{userId = 1, userName = "小东", desc = "js高手"});
    userList.Add(new UserObj { userId = 2, userName = "小明", desc = "json高手" });
    userList.Add(new UserObj { userId = 3, userName = "小华", desc = "jquery高手" });
    JsonResult jt = Json(userList.ToArray(), JsonRequestBehavior.AllowGet);
    jt.ContentType = "text/html";
    return jt; 
}
复制代码

 





三:最后总结:
1.无论传递json还是后台返回json,所以action无论参数有多少,参数的类型是什么,在http中都是以键值方式作为一个整包来处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值