在mvc中ViewBag和ViewData中的相同键只有最后一个作为两者

时间:2016-03-29 09:01:27

标签: c# asp.net-mvc

当我使用ViewBagViewData使用相同的密钥时,只有最后一个密钥可用。

我正在使用此代码:

我的行动部分

public ActionResult Index()
{
    ViewBag.Name = "View Bag";
    ViewData["Name"] = "View Data";
    TempData["Name"] = "Temp Data";

    return View();
}

我的观点部分

<div class="jumbotron">
    <h1>ASP.NET</h1>
    <p class="lead">@ViewBag.Name</p>
    <p class="lead">@TempData["Name"]</p>
    <p class="lead">@ViewData["Name"]</p>
    <p><a href="http://asp.net" class="btn btn-primary btn-lg">Learn more &raquo;</a></p>
</div>

和我的结果显示在UI上

enter image description here

1 个答案:

答案 0 :(得分:4)

ViewBag是一种动态类型。 ViewBag的内部实现将Name存储到ViewData [“Name”](ViewDataDictionary的类型)中,因此这两个是可互换的。 ViewData [“Name”]和ViewBag.Name。