从View向Controller传递复杂类型Json

mvc给我们提供多种controller中读取view数据的方法

1.从Ruquest["name"]中直接读取

2.将表单中name名称直接写在Action的参数列表中

3.将表单中一组name组装成一个类作为Action的参数

其实实质上都是用表单中的name将数据传输到后台.只不过后两点mvc用反射等一些技术简化了我们的操作

但是很多时候回传递更复杂的数据,第三种我感觉是最灵活的,结合json传递数据变得非常简单

        public class Good
        {
            public string Name { get; set; }
            public decimal Price { get; set; }
        }
        public class Order
        {
            public string Direction { get; set; }
            public string ReceivePerson { get; set; }
            public List<Good> Goods { get; set; }
        }

Action

        [AcceptVerbs(HttpVerbs.Post)]
        public ActionResult temp([Form]Order orderItem)
        {

            return View();
        }

Json

    var arr = [];
    var Dir = "江苏";
    var Rec = "张三";
    var obj1 = new Object();
    obj1.Name = "商品1";
    obj1.Price = "价格1";
    var obj2 = new Object();
    obj2.Name = "商品2";
    obj2.Price = "价格2";
    arr.push(obj1, obj2);
    var ajaxData = {
        Direction: dir,
        ReceivePerson: Rec,
        Goods: arr
    };

最后可以通过ajax提交到后台,做一个笔记,发现其实View向Controller传递数据的核心还是name,名称一致
 加油,相信自己,明天会更好!

时间: 2024-08-06 15:58:00

从View向Controller传递复杂类型Json的相关文章

【MVC架构】——怎样利用Json在View和Controller之间传递数据

在MVC架构中,尽管非常多东西和三层非常相似,可是也有非常大的差别.就比方传递数据.在三层架构中,传递数据就仅仅要一层返回,另外一层用同样类型的变量来接收即可了.在MVC中,事实上原理是一样的,Controller中的方法返回Json字符串.然后View来接收.或者反过来,不同的就是这之间须要一个序列化和反序列化的过程. 本文就简介利用Json在View和Controller之间传递数据的一个方面,大致从双方面介绍,一是什么是Json,二是怎样实现. 什么是Json 一.概念 百度百科说:JSO

【ASP.NET MVC】View与Controller之间传递数据

1   概述 本篇文章主要从操作上简要分析Controller<=>View之间相互传值,关于页面之间传值,如果感兴趣,可参考我另外一篇文章ASP.NET 页面之间传值的几种方式 . Controller=>View:Model,ViewBag,ViewData,TempData,ViewBag=>ViewData,ViewData=>ViewBag,ViewModel,JqGrid,AJAX+第三方插件等: View=>Controller:QueryString,F

mvc如何使用JavaScript在view和controller之间传递数据

在一般的BS项目开发中,我们经常需要在前台和后台之间传递数据,mvc架构中,也需要在view和controller之间传递数据,那么我们应该如何实现呢? view想controller传递数据:view中代码 <li>@Html.ViewComponent().WfSaveLink(Model).Id("saveToLink").OnBeforeDo("externalData")</li> <scriptlanguage="

MVC 从View像Controller中传值

在上一篇博客中总结了一下从Controller像View中传值的几种方法.事实上看那些方法和在我们最初学习VB的时候一样,将数据库中的数据显示到前台的页面.数据库还是那个数据库,仅仅是如今前台变成了浏览器.传值的形式发生了变化.从View像Controller中传值有非常多种方法,仅仅简单的说明一下自己使用过的. 使用Form 使用Form提交的方法有非常多种,先结合上次博客中使用Model从Controller向View中传值 一般形式的form 在View中 @*自定义的详细要使用的view

ASP.NET MVC View向Controller提交数据

我们知道使用MVC的一个很重的的用途就是把Controller和View之间进行解耦,通过控制器来调用不同的视图,这就注定了Controller和View之间的传值是一个很重的知识点,这篇博文主要解释一下View向Controller提交数据的几种形式,认识有限,有不足的地方请各位博友能够给完善. 一.通过Json数据 方法一:使用$.getJSON //方式一:根据页码 异步请求 数据 function loadPageList(pageIndex) { $.getJSON("/Stu/Lis

Spring MVC基础知识整理?View与Controller数据交互

概述 Spring MVC是由View—Controller—Model组成,其中View和Controller的数据交互,成为了关注的核心点.MVC中,我们将View中的数据传递到Controller,可以采用POST或者Get,传递相应的参数.Controller通过绑定来,匹配前台传递的参数.后台Controller也可以将值传递到前台页面. View值传递Controller 绑定传值的常用方式有如下 @RequestParam,绑定单个请求数据,可以是URL中的数据,表单提交的数据或上

ASP.NET MVC view与controller传值方式

1: ViewData传值方式ViewData的生命周期和View相同, 只对当前View有效.   ViewData["zd"] = dfdfd2:TempData传值方式   可以跨Action传递   TempData的数据至多只能经过一次Controller传递, 并且每个元素至多只能被访问一次,     例如一个用法为,抛出一个异常.跳转到error页面public ActionResult Index3(){      TempData["tempIndex&qu

Asp.net MVC 中Controller返回值类型ActionResult

内容转自 http://blog.csdn.net/pasic/article/details/7110134 Asp.net MVC中Controller返回值类型 在mvc中所有的controller类都必须使用"Controller"后缀来命名并且对Action也有一定的要求: 必须是一个public方法 必须是实例方法 没有标志NonActionAttribute特性的(NoAction) 不能被重载 必须返回ActionResult类型 如: [csharp] view pl

NEt中MVC的View和Controller的几种传值方式

1: ViewData传值方式ViewData的生命周期和View相同, 只对当前View有效.   ViewData["zd"] = dfdfd2:TempData传值方式   可以跨Action传递   TempData的数据至多只能经过一次Controller传递, 并且每个元素至多只能被访问一次,     例如一个用法为,抛出一个异常.跳转到error页面public ActionResult Index3(){      TempData["tempIndex&qu