MVC 传递数据 从前台到后台,包括单个对象,多个对象,集合

1.基本数据类型

我们常见有传递 int, string, bool, double, decimal 等类型。

需要注意的是前台传递的参数和后台Action 中的参数名称需要保证一致,否则 MVC 无法完成值的绑定。

前台代码:

//传递基本的数据类型
$('#btn1').on('click', function () {
var obj = {
parm1: 100,
parm2: "我是string",
parm3: true,
parm4: 1.23,
parm5: 9.999999
};
$.getJSON('/home/SimpleBaseData', obj, function (data) {
alert(data);
});
});

后台代码:

public ActionResult SimpleBaseData(int parm1, string parm2, bool parm3, double parm4, decimal parm5)
{
string result = string.Format("int={0},string={1},bool={2},double={3},decimal={4}", parm1, parm2, parm3, parm4, parm5);
return Json(result, JsonRequestBehavior.AllowGet);
}

效果:

2.传递单个对象

在前台将对象的每个属性赋值,然后在 Action 中以对象的方式接收传递过来的值。

本次示例需要传递一个用户对象到后台。

类:

public class UserInfo
{
public string UserName { get; set; }
public string UserPassWord { get; set; }
public string UserSex { get; set; }
public string UserPhone { get; set; }
}

前台:

//传递1个对象,后台以类的形式接收前台传递的值
$('#btn2').on('click', function () {
var obj = {
UserName: '张三',
UserPassWord: '不告诉你',
UserSex: '男',
UserPhone: '138888888888'
};
$.getJSON('/home/GetSingleObject', obj, function (data) { alert(data); });
});

后台:

public ActionResult GetSingleObject(UserInfo userinfo)
{
string result = Newtonsoft.Json.JsonConvert.SerializeObject(userinfo);
return Json(result, JsonRequestBehavior.AllowGet);
}

效果:

3.传递多个不同对象

有的时候会遇到需要同时传递多个对象到后台中去,比如在申报数据的时候往往需要填写多项数据,每个选项卡中的数据都不一样。如果按照传递单个对象的那种方式是不行的,我们需要在前台做一些小改动。

本次示例需要传递用户对象和地址对象到后台。

类:

新建一个地址类

public class Address
{
public string Country { get; set; }
public string Province { get; set; }
public string City { get; set; }
public string Street { get; set; }
}

前台:

需要设置 contentType:'application/json' ,data 部分需要使用 JSON.stringify() 方法对数据进行加工

$('#btn3').on('click', function () {
var userinfoObj = {
UserName: '张三',
UserPassWord: '不告诉你',
UserSex: '男',
UserPhone: '138888888888'
};
var addressObj = {
Country: '中国',
Province: '江西',
City: '南昌',
Street: '红谷滩新区XX路XX号'
};
$.ajax({
url: '/home/GetTwoObject',
type: 'post',//换成 get 无效
contentType: 'application/json',
data: JSON.stringify({
userinfo: userinfoObj,
address: addressObj
}),

success: function (data) {
alert("不使用ViewModel:" + data);
}
}); });

后台:

定义 2个参数对象

public ActionResult GetTwoObject(UserInfo userinfo, Address address)
{
string result = string.Format("{0}住在{1}省{2}市", userinfo.UserName, address.Province, address.City);
return Json(result, JsonRequestBehavior.AllowGet);
}

效果:

4.传递对象集合

传递对象集合的思路和传递多个对象一致。也是在前台设置contentType:'application/json' ,然后使用 JSON.stringify() 方法对data进行加工。

前台:

//传递集合
$('#btn4').on('click', function () {
var userList = [];
for (var i = 0; i < 5; i++) {
userList.push({ UserName: '姓名' + i, UserPassWord: '密码' + i, UserSex: '性别' + i, UserPhone: '电话' + i });
}
$.ajax({
url: '/home/GetUserList',
type: 'post',//改成 get 方式后无法获取
contentType: 'application/json',
data: JSON.stringify(userList),
success: function (data) {
alert(data);
}
});
});

后台:

public ActionResult GetUserList(List<UserInfo> list)
{
string result = Newtonsoft.Json.JsonConvert.SerializeObject(list);
return Json(result, JsonRequestBehavior.AllowGet);
}

效果:

转载于:https://www.cnblogs.com/wubh/p/6253358.html

MVC 传递数据 从前台到后台,包括单个对象,多个对象,集合的更多相关文章

  1. Asp.net MVC 传递数据 从前台到后台,包括单个对象,多个对象,集合

    今天为大家分享下 Asp.net MVC 将数据从前台传递到后台的几种方式. 环境:VS2013,MVC5.0框架 1.基本数据类型 我们常见有传递 int, string, bool, double ...

  2. ASP.NET MVC中从后台控制器(Controller)传递数据到前台页面视图(View)方式

    方式一: 数据存储模型Model: public class CalendarEvent { public string id { get; set; } public DateTime start ...

  3. thinkjs学习-this.assign传递数据和ajax调用后台接口

    在页面加载时,就需要显示在页面上的数据,可以在后台使用this.assign赋值,在前台通过ejs等模板获取:用户点击按钮,或者触发某些事件和后台进行交互时,就需要用到ajax调用后台接口.本文通过一 ...

  4. Jquery EasyUI +Ajax +Json +一般处理程序 实现数据的前台与后台的交互 --- 善良公社项目

    经过上一篇博客,本节主要是来看实现的功能是后台的数据通过json数据传过来,前台修改的数据再传回数据库之后页面再次更新table中的数据: 图示: 实例:前台的代码 <%--表格显示区--%&g ...

  5. js前台与后台数据交互-前台调后台

    转自:http://blog.csdn.net/wang379275614/article/details/17033981   网站是围绕数据库来编程的,以数据库中的数据为中心,通过后台来操作这些数 ...

  6. asp.net MVC ajax 请求参数前台加密后台解密

    最近有一个需求要求页面查询数据库,查询内容保存到excel里面作为附件加密打包下载.查询的sql作为参数传入后台,实现加密提交.这里做个记录,后面用到直接来拿. 控制器 public ActionRe ...

  7. MVC传递数据-传递对象或对象集合

    前言 本文主要介绍从View(或者js)文件向Controller提交对象或者对象集合.比方.将表格中的一行数据作为一个对象提交.或将多行数据作为一个集合提交到Controller. 回想 从View ...

  8. 微信小程序wx.request请求用POST后台得不到传递数据

    微信小程序的wx.request请求,method设为POST并向后台传递数据,但从后台返回的信息来看后台并没有获得传递的数据 wx.request({              url: 'url' ...

  9. MVC中前台如何向后台传递数据------$.get(),$post(),$ajax(),$.getJSON()总结

    一.引言 MVC中view向controller传递数据的时候真心是一个挺让人头疼的一件事情.因为原理不是很懂只看一写Dome,按葫芦画瓢只能理解三分吧. 二.解读Jquery个Ajax函数 $.ge ...

随机推荐

  1. 用java打开一个本地文件

    以下有三种方式打开 /** * 借助java.awt.Desktop打开 * @see 打开的目录或文件名中允许包含空格 */ private static void useAWTDesktop() ...

  2. python正则re

    import reline = "Catsaresmarterthandogs"matchObj = re.match( r'(.*)are(\w{2})(.*)', line, ...

  3. Jmeter断言-所有断言讲解

    Jmeter断言-所有断言讲解 jmeter中有个元件叫做断言(Assertion),它的作用和loadrunner中的检查点类似: 用于检查测试中得到的响应数据等是否符合预期,用以保证性能测试过程中 ...

  4. 9.3.1 The assign and deassign procedural statements

    IEEE Std 1364™-2001, IEEE Standard Verilog® Hardware Description Language The assign procedural cont ...

  5. 虚拟机安装VMware Tools, 安装gcc编译器

    一.虚拟机安装VMware Tools 1.虚拟机=>安装VMware Tools 2.打开文件,将下载的压缩包VMwareTools-10.3.10-12406962.tar.gz移动到指定安 ...

  6. 20140724 菜单制作:制表位(段落->制表位->)

    1.菜单制作:制表位(段落->制表位->) 叶轩楠·········· 上海大学 轩楠叶·········· 上海大学 楠轩叶·········· 上海大学 选完后要选“设置” 2.光盘制 ...

  7. python软件开发规范&分文件对于后期代码的高效管理

    根据本人的学习,按照理解整理和补充了python模块的相关知识,希望对于一些需要了解的python爱好者有帮助! 一.软件开发规范--分文件 当代码存在一个py文件中时: 1.不便于管理 (修改,增加 ...

  8. winform 使用webbrowser 打开不了pdf的解决办法

    最近有个项目需要在winform 打开网络路径的pdf文件,自然想到了webbrowser,但是让我没想到的是,在我电脑调试一点问题都没有,但是到了其他同事的电脑是各种各样的问题,有的打不开,有的显示 ...

  9. forEach方法

    *forEach() * -这个方法只支持ie8以上的浏览器 * -forEach方法需要一个函数作为参数 * -像这种函数,由我们创建但是不由我们调用,我们称为回调函数 * 数组中由几个元素函数就会 ...

  10. jQuery方法-queue()

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="utf-8&quo ...