2019独角兽企业重金招聘Python工程师标准>>>

前台向后传值:
1.用网站网址自带参数向后传【http://localhost:5809/ProductInfo/CatogryProducts?categoryID=0021】,后台controller用string ID = Request.QueryString["categoryID"]接收,其中categoryID是参数名称。

2.ajax传值,其中$.post(url,data,success(data, textStatus, jqXHR),dataType)

参数     描述
url     必需。规定把请求发送到哪个 URL。
data     可选。映射或字符串值。规定连同请求发送到服务器的数据。
success(data, textStatus, jqXHR)     可选。请求成功时执行的回调函数。
dataType     可选。规定预期的服务器响应的数据类型。默认执行智能判断(xml、json、script 或 html)。

该函数是简写的 Ajax 函数,等价于:

$.ajax({
  type: 'POST',
  url: url,
  data: data,
  success: success,
  dataType: dataType
});

$.get()也差不多。百度

3.表单传值,表单元素的name属性必须和后台model类型一样,直接用一个对象接收。在form的action属性中引用controller的方法就可以

ViewData ViewBag
它是Key/Value字典集合 它是dynamic类型对像
从Asp.net MVC 1 就有了 ASP.NET MVC3 才有
基于Asp.net 3.5 framework 基于Asp.net 4.0与.net framework
ViewData比ViewBag快 ViewBag比ViewData慢
在ViewPage中查询数据时需要转换合适的类型 在ViewPage中查询数据时不需要类型转换
有一些类型转换代码 可读性更好

4.viewdata传值

控制器向视图中传值ViewData详解

  1.将一个字符串传值到视图中

在action中我们将字符串保存在ViewData(或ViewBag [asp.net 3或以上才可用])中代码如下:

public ActionResult Index()
        {
            ViewData["str1"]= "这是一个字符串";

//也可以使用ViewBag来传递值

ViewBag.str2="这是另外一个字符串";

return View();
        }

在视图中我们可以用下面代码将字符串显示出来

<h1>@ViewData["str1"]</h1>

<h1>@ViewBag.str2</h1>

2.将一个字符串集合传递到视图中

public ActionResult Index()
        {
           List<string> str1= new List<string>();
            str1.Add("1111");
            str1.Add("2222");
            str1.Add("3333");
            ViewData["str"] = str1;

return View();
        }

在视图中我们通过下面语句将str1的值显示出来

@foreach (var a in ViewData["str"] as List<string>)
         {
           @a
         }

3.将一个datatable的值传递到视图中

public ActionResult Index()
            {

DataTable newtable = new DataTable("d");
            newtable.Columns.Add("商品编号", typeof(string));
            newtable.Columns.Add("客户编号", typeof(string));
            DataRow NewRow = newtable.NewRow();
            NewRow["商品编号"] = "132323213434";
            NewRow["客户编号"] = "344223443244";
            newtable.Rows.Add(NewRow);
            DataRow SNewRow = newtable.NewRow();
            SNewRow["商品编号"] = "343432445456";
            SNewRow["客户编号"] = "454523432453";
            newtable.Rows.Add(SNewRow);
            ViewData["dt"]= newtable;
            return View();
            }

在视图中我们通过下面语句将dt的值显示出来

注意:在顶部要先加上:@using System.Data;

<ul>
            @foreach(DataRow dr in (ViewData["dt"] as DataTable).Rows)
               {
                 <li>
                 @dr["商品编号"],@dr["客户编号"],
                 </li>
                }
              </ul>

然后是ViewBag:

public ActionResult UsingViewBag()
{ViewBag.Title = " Using ViewBag";ViewBag.ProjectName = "My Test Project";ViewBag.ProjectDescription = "This is Test Project to demo Viewdata and viewbag details";ViewBag.StartDate = new DateTime(2011, 1, 1);ViewBag.TotalPrice = 1000;ViewBag.TotalDays = 100;Dictionary<string, string> stackholder = new Dictionary<string, string>();stackholder.Add("Client", "Mr.  Client");stackholder.Add("Manager", "Mr. Joy");stackholder.Add("Team Leader", "Mr.Toy");stackholder.Add("Sr. developer", "Mr.dojoy");stackholder.Add("developer", "Mr. nodoy");ViewBag.stackholder = stackholder;List<string> modules = new List<string>();modules.Add("Admin module");modules.Add("ShoppingCart module");modules.Add("CMS module");ViewBag.modules = modules;return View();
}

对应View UsingViewBag 的cshtml的ViewBag:

<h1>@ViewBag.Title</h1><div><div><h2>Project Name : @ViewBag.ProjectName</h2></div><div>ProjectDescription :   <p>"@ViewBag.ProjectDescription.</p></div><div>Stack Holder :<br /><ul id="stakholder">@foreach ( var stakerholder in ViewBag.stackholder ){          <li>@stakerholder.Key &nbsp; : @stakerholder.Value</li>}</ul></div><div>Project Details:<br /><div>module List  :<ul id="modulelist">@foreach ( var module in ViewBag.modules ){          <li>@module</li>}</ul></div>Project StartDate : @ViewBag.StartDate.ToString("dd-MMM-yyyy") <br />Project TotalPrice: @ViewBag.TotalPrice  ₹  <br />Project TotaDays  : @ViewBag.TotalDays </div></div>

在controll用ViewBag传一个 List<ProductInfo> list的列表中:

public ActionResult Index()
        {
            List<ProductInfo> list = new List<ProductInfo>();
            list.Add(new ProductInfo
            {
                Department = "1111aa",
                Describe = "1111aa",
                Brand = "1111aa",
                CategoryID = "1111aa",
                ProductID = "1111aa",
                Color = "1111aa",
                Cost = "1111aa",
                Note = "1111aa",
                Owner = "1111aa",
                PriceTag = "1111aa",
                ProductName = "98uy",
                ShelfLife = "1111aa",
                Size = "1111aa",
                Style = "1111aa",
            });
            ViewBag.list = list;
            return View();
        }

在前台中:
@foreach(var item in ViewBag.list){
    @item.ProductName;
    @item.Department;
}

转载于:https://my.oschina.net/u/3522874/blog/1204445

前后台相互传值的方法概述相关推荐

  1. Android中WebView加载本地Html,与JavaScript与Android方法相互传值...

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010046908/article/details/51759125 最近在做项目中,要使用High ...

  2. Android中WebView加载本地Html,与JavaScript与Android方法相互传值(续)...

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010046908/article/details/51809558 接着上篇Android中Web ...

  3. Java05-day05【方法(概述、调用过程图解)、带参方法、带返回值方法、重载、方法参数传递(基本类型、引用类型)】

    java零基础入门到精通(2019版)[黑马程序员] 视频+资料:[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg   提取码:zjxs] &qu ...

  4. 使用Spring Security3的四种方法概述

    使用Spring Security3的四种方法概述 那么在Spring Security3的使用中,有4种方法: 一种是全部利用配置文件,将用户.权限.资源(url)硬编码在xml文件中,已经实现过, ...

  5. vue 父子组件传值以及方法调用,平行组件之间传值以及方法调用大全

    vue项目经常需要组件间的传值以及方法调用,具体场景就不说了,都知道.基本上所有的传值都可以用vuex状态管理来实现,只要在组件内监听vuex就好. vue常用的传值方式以及方法有: 1. 父值传子( ...

  6. 微信小程序四种父子相互传值方式

    微信小程序四种父子相互传值方式 1. 绑定自定义属性(父传子),触发自定义方法 (子传父) 原生微信小程序+uni-app都可以实现 父组件: <template><view cla ...

  7. 高光谱解混:基于几何,统计,稀疏回归的方法概述

    高光谱解混方法概述 问题引入 问题何来? 基础知识 核心任务 基础方法 线性与非线性模型 线性混合模型 非线性混合模型 非线性方法的概述 高光谱解混流程 大气校正(Atmospheric Correc ...

  8. java基础语法入门到类型转换问题,运算符,数据输入,数组,方法概述,Debug模式,以及10个小案例的详细介绍。

    java基础语法 目录 java基础语法 1. Java概述 1.1 Java语言发展史(了解) 1.2 Java语言跨平台原理(理解) 1.3 JRE和JDK(记忆) 1.4 JDK的下载和安装(应 ...

  9. 地理建模方法概述02

    文章目录 第4节 地理建模方法概述 地理建模中常用的数学方法 一.数据分析法 (一)探索性数据分析 (二)数据分析的地理建模实例 二.机理分析法 (一)结构分析法 (二)功能分析法 (三)过程分析法 ...

最新文章

  1. 【自然语言处理】hmm隐马尔可夫模型进行中文分词 代码
  2. spring基于注解程序开发
  3. Mapper 接口无法注入或Invalid bound statement (not found)
  4. Web前端开发——BAT面试题汇总及答案03
  5. /usr/include/stdio.h:27:10: fatal error: bits/libc-header-start.h: No such file or directory 报错解决
  6. Java中什么时候throws_何时在Java方法声明中使用throws?
  7. Keras中的两种模型:Sequential和Model
  8. c 语言程序设计(清华大学郑莉),清华大学 C++程序设计语言 45 郑莉 视频教程
  9. Android模拟地图gps定位
  10. qq音乐 android,QQ音乐安卓版
  11. 条码仓库管理系统在食品行业中的应用
  12. IDEA设置版权信息
  13. Docker三剑客详解
  14. 用聊天记录当证据 对方改了微信号怎么证明他是他
  15. 正则表达式regex(入门使用)
  16. arch配置之百度网盘
  17. Skleran-线性模型-普通最小二乘法-LinearRegression
  18. kubelet启动pod源码分析(三)
  19. 基于LSTM实现股票预测
  20. 早期 计算机网络只是包括,计算机网络-判断题.docx

热门文章

  1. java虚拟机之三--理解Java虚拟机体系结构
  2. SpringBoot 精通系列-创建SpringBoot的入门项目
  3. Android知识体系
  4. 外星人bios按f2调风扇_外星人电脑上海维修站地址「上海市飞雕国际大厦2703室」...
  5. Redis-HyperLogLog
  6. 圆形缓冲区(循环buffer)实现
  7. RHEL5 怎么装vim
  8. 项目改用GoModules管理依赖的方法和经验总结
  9. MYSQL统计行数时到底应该怎么COUNT
  10. 算法面试中单链表专题