• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

前段时间,在项目中,运用到ASP.NET MVC 2.0技术,经常会遇到要在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,它是泛型类型的,代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
   5:  
namespace QQYDT.Help.PageHelp
   7: {
class ListViewData<T>
   9:     {
public ListViewData()
  11:         {
new List<T>();
  13:         }
  14:  
int PageSize
  16:         {
  17:             get;
  18:             set;
  19:         }
  20:  
int _currentPage;
int CurrentPage
  23:         {
  24:             get
  25:             {
return _currentPage;
  27:             }
  28:             set
  29:             {
value;
  31:             }
  32:         }
  33:  
public List<T> PageData
  35:         {
  36:             get;
  37:             set;
  38:         }
int PageDataCount
  40:         {
  41:             get;
  42:             set;
  43:         }
  44:  
int PageCount
  46:         {
  47:             get
  48:             {
int count = PageCalculator.TotalPage(PageDataCount, PageSize);
  50:  
return count;
  52:             }
  53:  
  54:         }
  55:  
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方法。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
ASP.NET中进行消息处理(MSMQ) 一发布时间:2022-07-10
下一篇:
如何在ASP.NET中使用三层架构发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap