控制器向视图中传值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>