MVC 中的 ViewBag 和 ViewData 中的相同键只有最后一个同时工作

sur*_*ira 0 c# asp.net-mvc

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

我正在使用此代码:

我的行动部分

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

    return View();
}
Run Code Online (Sandbox Code Playgroud)

我的观点部分

<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>
Run Code Online (Sandbox Code Playgroud)

我的结果显示在 UI 上

在此处输入图片说明

Jam*_*Dev 5

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