MVC中控制器向视图传值的四种方式
MVC中的控制器向视图传值有四种方式分别是
1 ViewDate 2.ViewBag 3.TempDate 4.Model
下面分别介绍四种传值方式
首先先显示出控制器中的代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc; namespace WebApplication1.Controllers
{
public class DefaultController : Controller
{
// GET: Default
/// <summary>
/// 1、提供视图模型对象
/// </summary>
/// <returns></returns>
public ActionResult Index()
{
DateTime date = DateTime.Now;//一个对象作为View方法的参数传递给视图
return View(date);
}
/// <summary>
/// 2、使用ViewBag(视图包)传递数据
/// </summary>
/// <returns></returns>
public ActionResult Edit()
{
//ViewBag 允许在一个动态的对象上定义任意属性,并在视图中访问它.这个动态的对象可以通过Controller.ViewBag属性访问它.
ViewBag.Name = "名字代号";
ViewBag.Age = "";
ViewBag.Hobby = "打篮球,打羽毛球等";
ViewBag.StrDate = DateTime.Now;
return View();
}
/// <summary>
/// 3、 使用View Data传递数据
/// </summary>
/// <returns></returns>
public ActionResult Detail()
{
//在MVC3.0之前,主要是通过这种方式传递数据,它是通过用 ViewDataDictionary类实现的,而不是动态的对象.
//ViewDataDictionary类是类似标准"键/值"集合,并通过Controller类的ViewData属性进行访问的.这个方法,在视图中需要对对象进行转换.
ViewData["Message"] = "Hello,World !";
ViewData["Date"] = DateTime.Now;
return View();
}
//使用TempDate来传递数据
public ActionResult tempdates()
{
//TempData 他和viewdate的用法差不多但是他比viewdate的好处是他可以做到夸不同页面之间的传值
TempData["Message"] = "名字信息";
TempData["Age"] = "";
TempData["Hobby"] = "打篮球,打羽毛球等";
TempData["Timess"] = DateTime.Now;
return View();
}
}
}
这个是第一个控制器中的方法传递的数据
<div> @{
ViewBag.Title = "Index";
}
<h1>当前时间</h1>
<h2>@(((DateTime)Model).Date)</h2>
<h2>@(((DateTime)Model).DayOfYear)</h2><br />
</div>
resault:
当前时间
2019/4/2 0:00:00
92
1.使用ViewBag
<div>
@{ ViewBag.Title = "Edit"}
<h1>@ViewBag.Name</h1>
<h2>@ViewBag.Name</h2>
<h2>@ViewBag.Age</h2>
<h2>@ViewBag.Hobby</h2>
<h2>@ViewBag.StrDate</h2>
</div>
resault:
名字代号
22
打篮球,打羽毛球等
2019/4/2 15:59:26
2.View Data的用法
<div>
@{
ViewBag.Title = "Detail";
}
<h2>@ViewData["Date"]</h2>
<h2>@ViewData["Message"]</h2>
<h2>@view</h2>
</div>
resault:
hello World
2019/4/2 15:59:26
3.TempData的用法
<div>
@{ ViewBag.Ttle = "tempdates";} <h1>@TempData["Message"]</h1>
<h1>@TempData["Age"] = </h1>
<h1>@TempData["Hobby"] </h1>
<h1>@TempData["Timess"]</h1> </div>
resault:
名字代号
22
打篮球,打羽毛球等
2019/4/2 15:59:26
4,model的用法如果有想知道的可以联系我.
MVC中控制器向视图传值的四种方式的更多相关文章
- .NET MVC框架中控制器接收参数的四种方式
1.通过路由中的配置的参数名字直接接收(要求:两者同名) routes.MapRoute( name: "Default", ...
- 第三节:Action向View传值的四种方式(ViewData、ViewBag、TempData、Model)
简 介 在前面的章节中,我们已经很清楚,MVC工作模型的流程,Controller中的Action接收到客户端的请求,处理后要将数据返回给View,那么Action中是如何将数据返回给View的,二 ...
- Struts2中访问web元素的四种方式
Struts2中访问web元素的四种方式如下: 通过ActionContext来访问Map类型的request.session.application对象. 通过实现RequestAware.Sess ...
- Delphi中动态创建窗体有四种方式
Delphi中动态创建窗体有四种方式,最好的方式如下: 比如在第一个窗体中调用每二个,主为第一个,第二个设为动态创建 Uses Unit2; //引用单元文件 procedure TForm1.But ...
- ASP.NET MVC Controller向View传值的几种方式
上几篇博文提到MVC和WebForm的区别,主要是MVC的Controller和View将传统的WebForm的窗体和后台代码做了解耦,这篇博文简单介绍一下在MVC中Controller向View是如 ...
- 第四节:MVC中AOP思想的体现(四种过滤器)并结合项目案例说明过滤器的实际用法
一. 简介 MVC中的过滤器可以说是MVC框架中的一种灵魂所在,它是MVC框架中AOP思想的具体体现,所以它以面向切面的形式无侵入式的作用于代码的业务逻辑,与业务逻辑代码分离,一经推出,广受开发者的喜 ...
- Action向视图传值的6种方式
在使用ASP.NET MVC进行项目开发时,经常会碰到从Action向视图传值的问题,今天我就把我所知道的方式总结了一下,分成了以下六种: 1.使用ViewData进行传值 在Action中,有如下代 ...
- Action向视图传值的6种方式(转)
在使用ASP.NET MVC进行项目开发时,经常会碰到从Action向视图传值的问题,今天我就把我所知道的方式总结了一下,分成了以下六种: 1.使用ViewData进行传值 在Action中,有如下代 ...
- MVC中提交表单的4种方式
一,MVC HtmlHelper方法 Html.BeginForm(actionName,controllerName,method,htmlAttributes){} BeginRouteForm ...
随机推荐
- 像素(PX)转其它长度单位(mm、cm...)
今天想把px转成mm为单位,因像素跟其它单位比值的大小会跟屏幕设置的分辨率大小而不定,因此不能以固定的数值去计算. 解决方法是 页面上放一个高度为1mm的隐藏块 <div id="di ...
- ArrayList实现
数组实现父类:AbstractList接口:List,RandomAccess,Cloneable,Serializable字段://默认容量private static final int DEFA ...
- 【CentOS 6.5】QtCreator启动时关于dbus-1的错误解决方法
关于上篇文章留下的启动QtCreator提示:dbus_connection_can_send_type的错误,解决办法: 更新dbus版本来解决.. 首先去 http://dbus.freedesk ...
- leetcode563
/** * Definition for a binary tree node. * public class TreeNode { * public int val; * public TreeNo ...
- delphi 触摸 手势
delphi手势,左右滑动, 控件的OnGesture事件写代码. 放一个TGestureManager控件,设置控件的touch属性为TGestureManager控件. 然后勾选控件的Touch& ...
- C# 之 日常问题积累
https://www.cnblogs.com/xinaixia/p/3956349.html
- 使用 Zend_Studio 开发
之前一直用vim 写PHP, 总觉得IDE的一大堆没有用的插件非常麻烦,所以一直避免使用Zend_Studio.不过随着PHP的发展和框架的发展,以及个人的发展,最后还是回到的IDE的时代. 在使用Z ...
- oracle中如何修改process
转自https://blog.csdn.net/qq_35686181/article/details/52350922 oracle中修改process 在 oracle中,要经常查看proces ...
- 两个链表的交叉 · Intersection of Two Linked Lists
[抄题]: Write a program to find the node at which the intersection of two singly linked lists begins. ...
- 1-为什么java的main方法必须是静态的
为什么java的main方法必须是静态的 今天看类型信息时发现一个问题,不能再main方法中打印this关键字的信息,这时想起了之前的知识,不能再静态方法中调用this.理由很简单,this表示“ ...