ASP.NET MVC中Controller与View之间的数据传递

一、Controller向View传递数据

Controller向View传递数据有3种形式:

1、通过ViewData传递

在Controller里面定义ViewData,并且赋值,比如 ViewData["contact"] = contact;

然后在View里面读取Controller中定义的ViewData数据

比如联系人: <input type="text" value=‘<%=ViewData["contact"] %>‘ name="contact"/>

2、通过TempData传递

与ViewData的使用和传递方式相类似,现在在Controller里面定义TempData,并且赋值,比如 TempData["message"] = “你好!”;

然后在View里面读取Controller中定义的TempData数据

比如联系人: <input type="text" value=‘<%=TempData["message"] %>‘ name="message"/>

3、通过强类型的ViewModel传递

我们先创建一个ListViewData,它是泛型类型的,代码如下:

   1: using System;
   2: using System.Collections.Generic;
   3: using System.Linq;
   4: using System.Text;
   5:  
   6: namespace QQYDT.Help.PageHelp
   7: {
   8:     public class ListViewData<T>
   9:     {
  10:         public ListViewData()
  11:         {
  12:             PageData = new List<T>();
  13:         }
  14:  
  15:         public int PageSize
  16:         {
  17:             get;
  18:             set;
  19:         }
  20:  
  21:         private int _currentPage;
  22:         public int CurrentPage
  23:         {
  24:             get
  25:             {
  26:                 return _currentPage;
  27:             }
  28:             set
  29:             {
  30:                 _currentPage = value;
  31:             }
  32:         }
  33:  
  34:         public List<T> PageData
  35:         {
  36:             get;
  37:             set;
  38:         }
  39:         public int PageDataCount
  40:         {
  41:             get;
  42:             set;
  43:         }
  44:  
  45:         public int PageCount
  46:         {
  47:             get
  48:             {
  49:                 int count = PageCalculator.TotalPage(PageDataCount, PageSize);
  50:  
  51:                 return count;
  52:             }
  53:  
  54:         }
  55:  
  56:         public int ShowType
  57:         {
  58:             get;
  59:             set;
  60:         }
  61:     }
  62: }

使用ViewModel传递数据的时候,通常在创建View的时候我们会选择创建强类型View,如下图所示:

在View的开始部分我们可以看到ViewModel,ViewPage尖括号里面的就是ViewModel

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/ViewPage.Master" Inherits="System.Web.Mvc.ViewPage<QQYDT.Help.PageHelp.ListViewData<QQYDT.DTO.CompanyDTO>>" %>

在View引用 <input name="listId" type="checkbox" class="STYLE2" value="<%=m.CompanyId%>" />,这种方式的好处是vs能够提供智能感知。

二、View向Controller传递数据

在ASP.NET MVC中,将View中的数据传递到Controller中,主要通过发送表单的方式来实现。具体的方式有:

1、通过Request.Form方式传递

lto.LetterText = Request.Form["content"];

这种方式也可以简写,直接在后台的参数列表传入控件的名字,比如public ActionResult Write(string content)。

这样在Write方法里面获得content控件的值。

2、通过FormCollection读取表单数据

public ActionResult ActionName(FormCollection formCollection)

string username = formCollection["UserName"];

3、自定义数据绑定

自定义数据绑定的方法如下:创建一个自定义数据绑定类,让这个类继承自IModelBinder,实现该接口中的BindModel方法。

时间: 2024-11-01 08:58:10

ASP.NET MVC中Controller与View之间的数据传递的相关文章

ASP.NET MVC中Controller与View之间的数据传递总结

在ASP.NET MVC中,经常会在Controller与View之间传递数据,因此,熟练.灵活的掌握这两层之间的数据传递方法就非常重要.本文从两个方面进行探讨: Ø Controller向View传递数据 Ø View向Controller传递数据 一.Controller向View传递数据 1.       使用ViewData传递数据 我们在Controller中定义如下: ViewData[“Message”] = “Hello word!”; 然后在View中读取Controller中

Asp.net MVC中 Controller 与 View之间的数据传递

在ASP.NET MVC中,经常会在Controller与View之间传递数据 1.Controller向View中传递数据 (1)使用ViewData["user"] (2)使用ViewBag.user (3)使用TempData["user"] (4)使用Model(强类型) 区别: (1)ViewData与TempData方式是弱类型的方式传递数据,而使用Model传递数据是强类型的方式. (2)ViewData与TempData是完全不同的数据类型,View

ASP.NET MVC3中Controller与View之间的数据传递总结

</pre>在ASP.NET MVC<span style="font-family:宋体">中,经常会在</span>Controller<span style="font-family:宋体">与</span>View<span style="font-family:宋体">之间传递数据,因此,熟练.灵活的掌握这两层之间的数据传递方法就非常重要.本文从两个方面进行探讨:&

ASP.NET MVC3中Controller与View之间的数据传递

在ASP.NET MVC中,经常会在Controller与View之间传递数据,因此,熟练.灵活的掌握这两层之间的数据传递方法就非常重要.本文从两个方面进行探讨: 一.  Controller向View传递数据 1.       使用ViewData传递数据 我们在Controller中定义如下: [csharp] view plain copy print? ViewData["Message_ViewData"] = " Hello ViewData!"; Vi

MVC中Controller与View中间的数据传递的常用方法

这几天正在学习MVC,顺便就将自己每天的学习心得记录下来与大家分享一下吧! 在MVC中,Controller与View之间传递数据是很频繁的事情,所以在这里就总结一下我自己在学习中使用的几种常用的方法: 将数据从Controller中传递到View中: ViewData:它是Key/Value字典集合 赋值方式(cs文件中): ViewData["Demo"]="Hello world!"; 使用方法(aspx文件中): <h1> <%:ViewD

Asp.net mvc中controller与view间的如何传递数据

1.      Asp.net中的页面指令 无论是在java程序中还是在.net程序中,我们总是会看见一些@指令,那么这些常见指令的作用是什么呢? ?  @Page指令 只能在.aspx页中使用.如果在其他页面中使用会发生编译错误.比较常见的属性有: 1. Language 指出在编译内联代码块和页的<script>节中出现的所有代码时所使用的语言,默认的语言是Visual Basic .NET. 2. AutoEventWireup 指出是否启用页事件.默认为true. VS.NET开发的页

MVC中Controller与View之间数据互传

转自:http://blog.csdn.net/sknice/article/details/42323791 在ASP.NET MVC中,经常会在Controller与View之间传递数据,因此,熟练.灵活的掌握这两层之间的数据传递方法就非常重要.本文从两个方面进行探讨: 一.Controller向View传递数据 1.使用ViewData传递数据 在Controller中定义如下: ViewData[“Message_ViewData”] = “ Hello ViewData!”; 在Vie

(四)ASP.NET MVC 中 Controller 给 View 传递数据的方式

1. ViewData: 以 ViewData["keyname"] = value 这样键值对的方式进行数据传送.在对应的 cshtml 中用 @ViewData["keyname"] 来获取值. 2. ViewBag: ViewBag 是 dynamic 类型的,是对 ViewData 的一人动态类型封装,用起来更方便,和 ViewData 共同操作一个数据 .在 Controller 中使用 ViewBag.keyname=value 来赋值,在 cshtml

ASP.NET MVC 之控制器与视图之间的数据传递

今天,我们来谈谈控制器与视图之间的数据传递. 数据传递,指的是视图与控制器之间的交互,包括两个方向上的数据交互,一个是把控制器的数据传到视图中,在视图中如何显示数据,一个是把视图数据传递到控制器中, 如何在控制器中获取,处理这些数据. ASP.NET MVC 中所有控制器都继承Controller类,而Controller又继承自ControllerBase,而ControllerBase下又包含ViewData以及TempData视图数据字典. 一,使用ViewData传递数据 ViewDat