我需要将一些信息传递给部分cshtml视图。 我使用ViewDataDictionaryViewBag

public ActionResult TaskPage(int ID = 0)
{
    ViewBag.breadcrumbs = new string[] {
        "List", "Tasks"
    };
    ViewBag.title = "Editing - My selected itemd";
    ViewBag.id = ID;
    return View();
}

然后在组装视图时我也传递一个ViewDataDictionary

@Html.Partial("~/Views/Components/_Header.cshtml", new ViewDataDictionary { { "role", "task-page" } })

我的_Header.cshmtl文件同时使用此字典和ViewBag

  ViewBag.breadcrumbs = ViewBag.breadcrumbs != null ? ViewBag.breadcrumbs : new string[] { };
  var role = ViewData["role"];

令我惊讶的是,当我传递ViewDataDictionary时, ViewBag也不包含任何数据。 怎么可能? 知道如何更好地处理这个?

#1楼 票数:2 已采纳

看看这篇文章ViewData和ViewBag有什么区别?

看起来“内部ViewBag属性存储为ViewData字典中的名称/值对”。 当你传递一个新的ViewDataDictionary对象时,这表明你正在覆盖ViewBag

摘自此博客文章

public dynamic ViewBag 
{ 
    get 
    { 
         if (_dynamicViewData == null) 
        {
            _dynamicViewData = 
            new DynamicViewDataDictionary(() => ViewData); 
        }
        return _dynamicViewData;
    }
} 

  ask by nest translate from so

未解决问题?本站智能推荐:

1回复

使用ViewData Dictionary和ViewBag的部分参数会删除ViewBag数据

我需要将一些信息传递给部分cshtml视图。 我使用ViewDataDictionary和ViewBag 。 然后在组装视图时我也传递一个ViewDataDictionary : 我的_Header.cshmtl文件同时使用此字典和ViewBag 。 令我惊讶的是,当我
2回复

在发布数据时维护ViewBag值

我有一个需要回答的逻辑问题! 这是一个场景.. - 在控制器中 - 在视图中 “在我的控制器中,我已经为ViewBag设置了值,并在VIew中从ViewBag中检索了值。现在在View中,我有一个按钮,它将一些数据发布到HttpPost方法。在HttpPost方法
2回复

如何从动态创建的ViewBag中的封装属性创建DropDownList?

注意:变量名称已更改,以保持我的代码的目的是匿名的。 任务 : 创建一个SelectList ,它将显示所选内容(如果选择了任何内容),并将生成一个列表供您选择。 ViewBag声明/在定义CarShow控制器 : 我在“编辑视图”中尝试了以下代码来生成SelectLi
2回复

需要从viewdata中选择最后一个ID

我有一个带有生产订单的ViewData。 我做的事情是操作员可以通过选择他想要的生产订单来创建新的生产,但理想的是显示已经创建的最后生产订单,而不是他必须查看所有选项并选择最后一个一。 有人可以帮我吗? 我正在使用ASP-NET C#Razor Pages。 这是我的ViewDa
1回复

如何在ASP.NET MVC 4实体框架中仅将特定的数据库实体集添加到ViewData?

我试图在我的ASP.NET MVC 4项目中仅使用特定的数据库实体集填充ViewData。 以下是到目前为止的内容,但是如何编写“ if”语句来完成此操作? 正常情况下,我一直将ViewData模型发送到部分视图,如下所示,但由于我不想发送整个模型,因此我认为这不起作用: 如何
9回复

将额外的 ViewData 传递给强类型的局部视图

我有一个强类型的部分视图,它采用 ProductImage 并且在呈现它时,我还想为它提供一些我在包含页面中动态创建的附加 ViewData。 如何使用 RenderPartial 调用将强类型对象和自定义 ViewData 传递给局部视图?
2回复

ViewBag,ViewData,Tempdata可以容纳多少数据

ViewBag,ViewData和Tempdata可以容纳的最大大小是多少?
2回复

如何在Umbraco Surface Controllers中使用ViewData和ViewBag

我只花了2个小时来弄清楚为什么当我在Surface控制器内的View.Bag / ViewData中放一个字符串时,当我尝试将字符串放回视图中时却得到null。 最后,我通过将字符串放入insted的会话变量中解决了该问题。 想知道为什么它不起作用,以及如何解决它。 提前致谢。
17回复

ViewData 和 ViewBag 有什么区别?

我在 MVC 3 中看到了ViewBag 。它与 MVC 2 中的ViewData有什么不同?
2回复

来自数据库的MVC4 DropDownList

我正在尝试建立一个非常简单的论坛,但是DropDownList出现问题。 我有两个模型: ForumThread.cs ForumCategory.cs 我试图用视图制作“创建”功能: 创造 和PartialView for ForumCategory: