实用干货!ASP.Net 控制器向View传值的三种方法.Net/ASP开发工程师

/ 闽江学院电气工程与自动化学院.Net/ASP开发工程师 / 2016-06-17

 ASP.Net,ViewBag,ViewData,View,

ASP.Net,ViewBag,ViewData,View,

   昨天跟大家说了View中的强类型页面和@model,今天就来和大家深入的说一下控制器向View中传值的三种方法。

   1.提供视图模型对象

你能把一个对象作为View方法的参数传递给视图

例如:

pubilc ActionResult Index()

{

      DateTime date=DateTime.Now;

      return View(date);

}

然后我们就可以在视图中用Razor的Model关键字来访问这个对象

@{

   ViewBag.Title="Index";

}iewBag.Title="Index";

<h2>Index<h2>

The day is: @(((DateTime)Model).DayofWeek)

或者是

@model DateTime

@{

  ViewBag.Title="Index";

}

<h2>Index<h2>

The day is:@Model.DayofWeek

  2使用ViewBag(视图包)传递数据

ViewBag 语序在一个动态的对象上定义任意属性,并在视图中访问它,这个动态的Controller.ViewBag属性访问它.

 public ActionResult Index()

{

    ViewBag.Message="Hello";

    ViewBag.Date=DateTime.Now;

    return View;

}


@{

  ViewBag.Title="Index";

}

<h>Index</h>

The day is:@ViewBag.Dta.DayofWeek

<p />

The message is:@ViewBag.Message

   3.使用View Date传递数据

在MVC3.0之前,主要都是通过这种方式传递数据,他是通过用ViewDataDictionary类实现的,而不是动态对象.ViewDataDictiongary类是类似标准"键/值"集合,并通过Controller类的ViewData属性进行访问的,这个方法,在视图中需要对对象进行转换。

控制器中:public ActionResult Index()

{

   ViewData["Message"]="Hello";

   ViewData["Date"]=DateTime.Now;

   return View();

}

视图中

@{

 ViewBag.Title="Index";

}

<h2>Index<h2>

The day is :@(((DateTime)ViewData["Date"]).DayofWeek)

<p />

The message is:@ViewData["Message"]


公众号,微信

汇鱼网海峡创乐汇
汇鱼网海峡创乐汇