MVC 传递数据 从前台到后台,包括单个对象,多个对象,集合
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 传递数据 从前台到后台,包括单个对象,多个对象,集合的更多相关文章
- Asp.net MVC 传递数据 从前台到后台,包括单个对象,多个对象,集合
今天为大家分享下 Asp.net MVC 将数据从前台传递到后台的几种方式. 环境:VS2013,MVC5.0框架 1.基本数据类型 我们常见有传递 int, string, bool, double ...
- ASP.NET MVC中从后台控制器(Controller)传递数据到前台页面视图(View)方式
方式一: 数据存储模型Model: public class CalendarEvent { public string id { get; set; } public DateTime start ...
- thinkjs学习-this.assign传递数据和ajax调用后台接口
在页面加载时,就需要显示在页面上的数据,可以在后台使用this.assign赋值,在前台通过ejs等模板获取:用户点击按钮,或者触发某些事件和后台进行交互时,就需要用到ajax调用后台接口.本文通过一 ...
- Jquery EasyUI +Ajax +Json +一般处理程序 实现数据的前台与后台的交互 --- 善良公社项目
经过上一篇博客,本节主要是来看实现的功能是后台的数据通过json数据传过来,前台修改的数据再传回数据库之后页面再次更新table中的数据: 图示: 实例:前台的代码 <%--表格显示区--%&g ...
- js前台与后台数据交互-前台调后台
转自:http://blog.csdn.net/wang379275614/article/details/17033981 网站是围绕数据库来编程的,以数据库中的数据为中心,通过后台来操作这些数 ...
- asp.net MVC ajax 请求参数前台加密后台解密
最近有一个需求要求页面查询数据库,查询内容保存到excel里面作为附件加密打包下载.查询的sql作为参数传入后台,实现加密提交.这里做个记录,后面用到直接来拿. 控制器 public ActionRe ...
- MVC传递数据-传递对象或对象集合
前言 本文主要介绍从View(或者js)文件向Controller提交对象或者对象集合.比方.将表格中的一行数据作为一个对象提交.或将多行数据作为一个集合提交到Controller. 回想 从View ...
- 微信小程序wx.request请求用POST后台得不到传递数据
微信小程序的wx.request请求,method设为POST并向后台传递数据,但从后台返回的信息来看后台并没有获得传递的数据 wx.request({ url: 'url' ...
- MVC中前台如何向后台传递数据------$.get(),$post(),$ajax(),$.getJSON()总结
一.引言 MVC中view向controller传递数据的时候真心是一个挺让人头疼的一件事情.因为原理不是很懂只看一写Dome,按葫芦画瓢只能理解三分吧. 二.解读Jquery个Ajax函数 $.ge ...
随机推荐
- CSS:CSS 链接
ylbtech-CSS:CSS 链接 1.返回顶部 1. CSS 链接 不同的链接可以有不同的样式. 链接样式 链接的样式,可以用任何CSS属性(如颜色,字体,背景等). 特别的链接,可以有不同的样式 ...
- linux中export的作用
设置环境变量. 为什么设置环境变量?---->全局使用. 不设置环境变量会怎么样?->只有当前shell中能够调用,其他的shell不能调用. 设置了之后呢?->全局都能调用.
- Python脚本轻松实现批量图片重命名
************************************************************************** 摘要:网上爬取的图片名字很混乱,格式也比较多,需要 ...
- scala 基础笔记
view bound:必须传入一个隐式转换函数 class [T <% Ordered [T]] content bound:必须传入一个隐式值 class [T : Ordering] !异步 ...
- KMP2
poj 2752 #include<stdio.h> #include<iostream> #include<algorithm> #include<stri ...
- centos 时区设置初认识
由于一些需要,我租用了一个海外服务器,并开始了我的centos之旅. 由于之前一直用虚拟机,而且在国内,所以不需要考虑时区的问题,但是现在,这个服务器是在海外的,所以就必须考虑时区的问题了.更何况我的 ...
- 磁盘设备在 Linux 下的表示方法
在 Linux 系统中磁盘设备文件的命名规则为: 主设备号 + 次设备号 + 磁盘分区号 对于目前常见的磁盘,一般表示为: sd[a-z]x 主设备号代表设备的类型,相同的主设备号表示同类型的设备. ...
- 一.Python特点
python第一节 简介 Python介绍 什么样的语言? 解释性语言:开发中没有编译的环节 交互式语言:在命令提示行执行python引擎,直接执行代码 面向对象语言:支持面向对象 优点 a.易学 b ...
- 22-7map
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Python学习笔记(九)——字符串
# 5.1 字符串的拼接 str1 = '我今天一共走了' num = 1280 str2 = '步' print(str1+str(num)+str2) # 计算字符串长度 print(len(st ...