当前位置: 代码迷 >> 综合 >> MVC传值 ViewData、ViewBag、TempData
  详细解决方案

MVC传值 ViewData、ViewBag、TempData

热度:31   发布时间:2023-10-09 02:43:35.0

结论
1、ViewData、ViewBag只可以在当前视图不限次数使用
2、TempData可以在当前视图或者跨视图传递。但只能使用一次。
3、ViewData、ViewBag值可以互取,TempData基于Session实现不能与ViewData、ViewBag值互取
4、ViewBag是基于ViewData的实现。同Key时值会被覆盖

 public class HomeController : Controller{
    public ActionResult Index(){
    //1、2、跨页面传值测试//3、值互取测试ViewData["ViewDataCrossPageTest"] = "ViewData跨页面传值";ViewBag.ViewBagCrossPageTest = "ViewBag跨页面传值";TempData["TempDataCrossPageTest"] = "TempData跨页面传值";//4、ViewData、ViewBag同Key测试ViewData["Name"] = "张三";ViewBag.Name = "李四";return View();}public ActionResult Contact(){
    return View();}}
Index.cshtml
<h1>跨页面传值测试</h1>
<h2>ViewData:@ViewData["ViewDataCrossPageTest"]</h2>
<h2>ViewData1:@ViewData["ViewDataCrossPageTest"]</h2>
<h2>ViewBag:@ViewBag.ViewBagCrossPageTest</h2>
<h2>ViewBag2:@ViewBag.ViewBagCrossPageTest</h2>
<p>结论:ViewData、ViewBag只可以在当前视图不限次数使用
</p>
<p>TempData可以在当前视图或者跨视图传递。但只能使用一次。
</p>
@*<h2>TempData:@TempData["TempDataCrossPageTest"]</h2>*@
<hr />
<h1>ViewData、ViewBag值互取</h1>
<h2>使用ViewData取ViewBag值:@ViewData["ViewBagCrossPageTest"]</h2>
<h2>使用ViewBag取ViewData值:@ViewBag.ViewDataCrossPageTest</h2>
<h2>使用ViewBag取TempData值:@ViewBag.TempDataCrossPageTest</h2>
<p>ViewData、ViewBag值可以互取,TempData基于Session实现不能与ViewData、ViewBag值互取
</p><hr />
<h1>ViewData、ViewBag同Key测试</h1>
<h2>ViewData:@ViewData["Name"]</h2>
<h2>ViewBag:@ViewBag.Name</h2>
<p>结论:ViewBag是基于ViewData的实现。同Key时值会被覆盖</p>
Contact.cshtml
<h1>跨页面传值测试</h1>
<h2>ViewData:@ViewData["ViewDataCrossPageTest"]</h2>
<h2>ViewBag:@ViewBag.ViewBagCrossPageTest</h2>
<h2>TempData:@TempData["TempDataCrossPageTest"]</h2>
<p>结论:ViewData、ViewBag只可以在当前视图不限次数使用
</p>
<p>TempData可以在当前视图或者跨视图传递。但只能使用一次。
</p>

MVC传值 ViewData、ViewBag、TempData
MVC传值 ViewData、ViewBag、TempData