问题标签 [viewbag]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
17 回答
210534 浏览

.net - ViewData 和 ViewBag 有什么区别?

ViewBag我在 MVC 3 中看到了。这与ViewDataMVC 2 中的有什么不同?

0 投票
1 回答
9550 浏览

asp.net-mvc - 在 MVC 中使用 ViewBag 不好吗?

看起来 mvc 3 团队决定引入一个在控制器和视图之间进行动态数据交换的功能,称为 viewbag,但对于我们都知道的强类型视图来说,这是一件好事吗?ViewBag使用强类型视图与使用强类型视图有哪些积极和消极方面?

0 投票
2 回答
1283 浏览

asp.net-mvc-3 - 为什么 MVC 视图需要存在于 View 目录中才能工作?

我一直在编写一个将 MVC 用作生成页面的主要引擎的 cms。

我进展顺利,但希望能够为每个站点创建一个独特的剃须刀模板,如果需要,还可以为每个视图创建一个独特的剃须刀模板。

我的规则是每个项目都必须有一个与 url 链接的唯一代码。

每个项目站点的资产以​​位置与项目相关的方式存储。

因此,与项目 C0001 关联的资产将存储在C0002 中assets\C0001\并用于 C0002:assets\C0002\等等。

为了保持整洁,我想做的是让剃须刀模板也与位于该assets\[ProjectCode]位置的项目相关联,但问题是我收到关于ViewBag not existing in context.

所以这行不通:

如下将呈现页面:

我猜第一个布局没有呈现,因为它在已知的视图搜索区域之外?但是当我告诉它文件在哪里时,我看不出问题出在哪里?

我很高兴使用示例 2 中的代码,但可能意味着在相当数量的项目站点之后,共享视图目录将变得非常繁忙。

Views只是想知道视图需要存在于目录中是否有原因?

0 投票
16 回答
143966 浏览

dll - 当前上下文中不存在名称“ViewBag”

我正在尝试在我的应用程序中使用 ViewBag,我拥有所有最新的 dll,最新版本的 MVC 3,但我仍然收到错误消息:

“当前上下文中不存在名称‘ViewBag’”

我什至卸载并重新安装了 MVC 3,但没有任何变化。

另外,我不相信 dll 会出现在 GAC 中。

我的问题可能是什么?或者如何将dll添加到GAC?

0 投票
10 回答
56170 浏览

view - 在局部视图中修改 MVC 3 ViewBag 不会持续到 _Layout.cshtml

我正在使用带有 Razor 视图引擎的 MVC 3。我想在部分视图内的 ViewBag 中设置一些值,并希望在我的 _Layout.cshtml 中检索这些值。例如,当您设置默认的 ASP.NET MVC 3 项目时,您会在“/Views/Shared”文件夹中获得一个 _Layout.cshtml 文件。在那个 _Layout.cshtml 中,页面标题设置如下:

然后在“/Views/Home/About.cshtml”视图中修改ViewBag的内容:

这工作正常。呈现关于视图时,页面标题为“关于我们”。所以,现在我想在 About 视图中呈现 Partial 视图,并且我想在 Partial 视图中修改 ViewBag.Title。("/Views/Shared/SomePartial.cshtml")

在此部分视图中,我有以下代码:

当我调试这段代码时,我看到 ViewBag.Title 被设置为“关于我们”,然后在部分视图中我看到它被重置为“从部分视图中关于我们”,但是当代码点击 _Layout.cshtml 时回到“关于我们”。

这是否意味着如果在 Partial 视图中修改了 ViewBag 的内容,这些更改将不会出现(可访问)在主视图(About.cshtml)或 _Layout.cshtml 中?

提前致谢!

0 投票
2 回答
4668 浏览

vb.net - VB.NET 中 MVC3 ViewBag 的后期绑定问题

我正在尝试在 VB.NET MVC3 项目中使用 MVC Scaffolding,并遇到了设置 Option Strict 的后期绑定问题(我想要它)。

这在 C# 中有效:

但在 VB.NET 中几乎相同的代码:

导致编译器错误Option Strict On disallows late binding。我在这里查看了文档:http: //msdn.microsoft.com/en-us/library/system.web.mvc.controllerbase.viewbag (VS.98).aspx但它不是很有帮助。

我注意到 C# 中的一个新的空应用程序在ViewBagVB.NETHomeController版本中使用ViewData,所以这可能是 VB.NET 的限制。

0 投票
2 回答
25265 浏览

asp.net-mvc - MVC 中的 ViewBag 与 ViewData 性能差异?

我知道 ViewData 和 ViewBag 都使用相同的支持数据,并且在大多数情况下都没有使用强类型模型好。然而,在两者之间进行选择时,ViewBag 的动态特性是否比使用 ViewData 慢?

0 投票
1 回答
2701 浏览

asp.net-mvc-3 - ASP.NET MVC 3 模型绑定 - ViewBag.Title 与 id="Title" 的输入冲突

ViewBag 动态属性似乎存在问题。可以说我有:

然后在页面上的表格中我有:

其中 Title 是数据库表中字段的名称。

当页面首次打开时,ID 为“Title”的文本框采用 ViewBag.Title 动态属性的值。

我对模型绑定的确切细节有点模糊,但这似乎是一个错误,或者如果不是,如果它是由于绑定过程而自然发生的事情,那么很高兴被警告这。

我发现的解决方法是将 ViewBag 属性重命名为:

(标题更改为 Titulo - 总是很高兴知道另一种语言以避免名称冲突......)

问题就消失了。

然而,问题是:

这种行为是可以预期的吗?这个错误很容易找到(花了一个小时才弄清楚,包括写这个问题),但我怀疑其他错误可能更多,嗯,深奥。

编辑:

改写问题:

Model Binder 会自动绑定它在 ViewBag 中找到的属性吗?即使我已传递给页面的强类型 ViewModel 中存在现有属性?当然 ViewModel 应该优先考虑?

0 投票
1 回答
529 浏览

asp.net-mvc-3 - 有没有办法使用字符串键访问 .NET MVC ViewBag 的属性?

我在 ViewBag 中有一个值:

在我看来,我将密钥存储为字符串。

有没有办法使用这个字符串版本的密钥从 Viewbag 访问我的值?

0 投票
3 回答
412 浏览

.net - 为什么我要把我的物品放在袋子里?

我刚刚看到一个关于该类的 SO 问题System.Collections.ConcurrentBag<T>,并且我已经看到了ASP.NET MVC 中的ViewBag属性。Controller根据我的经验,我了解到,如果您了解人们编写代码的确切目的,那么使用他们的代码会更容易。我认为它对于 aList<T>或 aDictionary<TKey,TValue>或 aReadOnlyCollection<T>的含义非常直观。Bag另一方面, A不是那么直观。

所以,我的问题是:这个Bag隐喻意味着什么,特别是关于 .NET 框架?