您的位置:首页 > 其它

MVC从Controller到view进行传值的两种方法

2017-02-23 15:04 218 查看
   这篇博客主要是MVC的数据传递中的ViewBag和ViewData。

一、从定义来看

ViewBag

//
// 摘要:
//     获取动态视图数据字典。
//
// 返回结果:
//     动态视图数据字典。
[Dynamic]
public dynamic ViewBag { get; }

     ViewBag返回的是dynamic类型,返回动态视图数据字典。而ViewData的返回值类型是ViewDataDictionary,ViewDataDictionary表示一个容器,该容器用于在控制器和视图之间传递数据。

//
// 摘要:
//     获取或设置视图数据的字典。
//
// 返回结果:
//     视图数据的字典。
public ViewDataDictionary ViewData { get; set; }

二、使用上的区别

(1)ViewBag

Controller中

public class HomeController : Controller
{
//
// GET: /Home/

public ActionResult Index()
{
ViewBag.MyParam = "ViewBag传递的参数:"+Request["param"];

return View();
}

}


在视图中显示

@{
ViewBag.Title = "Index";
}

<h2>@ViewBag.MyParam</h2>

在地址栏之后输入手动加入参数,如:http://localhost:50663/home/index/?param=helloWorld,我们可以看到呈现的页面为:



(2)ViewData

ViewData的使用与ViewBag类似,只是语法稍有不同。

public class HomeController : Controller
{
//
// GET: /Home/

public ActionResult Index()
{
ViewData["str1"] = "ViewData传递的参数:"+Request["str1"];

return View();
}

}


视图中
@{
ViewBag.Title = "Index";
}
<h2>@ViewData["str1"]</h2>


效果图如下所示:



   ViewData是一个字典集合,通过key值读取对应的value;ViewBag是动态类型,作用和ViewData一样,都是用来存储信息,有一些不同的是ViewData是object类型,ViewBag是动态类型。





                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  MVC数据交互
相关文章推荐