问题标签 [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 投票
2 回答
787 浏览

model-view-controller - 跨 MVC 控制器的全局数据

我的控制器中有许多从 Web 服务或数据库中检索数据的操作方法。除了它们之外,在同一个控制器中还有其他使用该数据的操作方法。由于我想防止不必要的数据检索,我想知道在不使用 cookie 或会话的情况下与其他方法共享该数据的最佳做法是什么?

在控制器中使用全局属性是否可以接受?

0 投票
8 回答
86616 浏览

asp.net-mvc-3 - 无法在 ASP.NET MVC3 的部分视图中访问 ViewBag

我有一个控制器调用视图。在视图中有一个PartialView叫做 be@Html.Partial("ViewName", model).这工作正常。

但是在controller我希望在视图包中放入一些很难放入我传递给视图的视图模型中的东西。主视图访问 没有问题ViewBag,但在PartialView它不返回任何内容。

在这种情况下是否可以使用ViewBag或者我应该将这些数据“破解”到我传递给视图的模型中(以及我传递给 的PartialView模型,以及我传递给第一个PartialView嵌套的模型PartialView)?

0 投票
2 回答
17723 浏览

javascript - 将带有 Single Qoute 的字符串从 MVC Razor 传递到 JavaScript

这看起来很简单,令人尴尬。但是,第一个问题是当将值从 MVC 3.0 (Razor) 中的新 ViewBag 传递到 JavaScript 块时,这是正确的方法吗?更重要的是,您在哪里以及如何应用正确的字符串替换代码来防止单引号变成 ',如下面的结果警报中所示?

将此添加到单个脚本块中:

导致以下警报:

在此处输入图像描述

0 投票
5 回答
7298 浏览

c# - 创建一个像 ASP.NET MVC 3 ViewBag 这样的类?

我有一种情况,我想做一些类似于在运行时创建属性的 ASP.NET MVC 3 ViewBag 对象所做的事情?还是在编译时?

无论如何,我想知道如何去创建一个具有这种行为的对象?

0 投票
4 回答
4669 浏览

c# - 我的 ViewData 怎么可能是空的,但可以在调试器中扩展?

刚刚在调试视图时遇到了一个有趣的效果。该场景很容易重现 - 我在View我添加的 Watch 窗口中有一个断点,ViewBag.ViewData值为null. 但是,如果我只是添加ViewBag和扩展对象,我可以看到ViewDataand it is not null。我还可以成功扩展它并查看它的属性。

谁能解释这是一个错误还是导致这种行为的原因?

观察窗口中的 ViewBag.ViewData

编辑

ViewBag.ViewData实际上是null。例如,如果我在视图中有此代码:

它显示跨度。所以奇怪的是我可以在监视窗口中展开它并查看属性。

编辑2

作为对@Darin Dimitrov 的回答 - 我尝试使用自定义测试类重现此行为,并且RuntimeBinderException在尝试访问私有属性时得到一个'SomeClass.SomeProperty' is inaccessible due to its protection level::

ViewBag.ViewData在这种情况下,在视图中访问时(带有 的行)我不应该得到相同的异常if (ViewBag.ViewData == null)吗?

0 投票
4 回答
38531 浏览

javascript - MVC:在 javascript 中迭代 Viewbag 数组

目标是将数据从ViewBag.ArrayJavascript 数组中获取。数据是在控制器中计算的,所以我不能直接从数据库中获取它。我需要数据来用 jqplot 绘制图表。代码:

问题是“'i' 在当前上下文中不存在”,@ViewBag.Array[i]但在jScriptArray[i]. 任何帮助表示赞赏。

0 投票
1 回答
1150 浏览

asp.net-mvc - 如何在 MVC 3.0 中的视图之间传递数据列表?

在遵循 Music Store 教程之后,我正在构建我的第一个 MVC 应用程序,并且在尝试在强类型视图之间传递数据时遇到了一些问题。

我有两种数据类型,它们有自己的强类型视图

客户 客户站点

在客户站点的索引视图中(返回一列客户站点),我需要在每个站点地址旁边显示客户名称,该视图是强类型到客户站点,但客户名称存储在客户表中,因此不会允许我从模型中直接访问这个吗?

我知道一种选择是使用 viewbag,我已经成功地使用以下代码在我的创建视图的下拉列表中显示客户名称

客户现场控制器/////////

索引视图//////////

这工作正常,但现在我需要将客户名称插入每个表行而不是下拉列表。任何人都可以提供任何关于我如何检索要在客户网站索引视图中的表格中呈现的客户姓名列表的指针吗?

viewbag 也是在视图之间传递数据的最佳方式还是有其他替代方法?有没有办法对具有多种数据类型的视图进行强类型化?

任何人都可以提供的任何建议都会很棒。

亲切的问候

利亚姆

0 投票
2 回答
2745 浏览

asp.net-mvc - 使用 viewbag 将列表返回到强类型视图

我正在尝试使用 viewbag 将客户列表返回到强类型视图,并且我遇到了一些困难,因为我是 MVC 和 Razor 的新手,任何人都可以就以下问题提供任何建议吗?

我的控制器中有以下代码,

我认为这段代码

所以我正在检索客户和客户网站的列表,这些网站被输入到视图中,

我正在尝试从使用的客户列表中提取 CustomerName

但这会产生一个错误,说“客户”类型不包含客户名称的定义,但它确实如下所示,所以我不确定为什么会发生错误。

更新:

我仍然不能让它做我需要的,我创建了一个主视图模型,其中包括

那么在我看来,

如果我尝试通过使用 for each 键入来访问模型

当我输入@customer 时。它只会让我访问两个列表,而不是列表中的单个属性。

我以为我可以使用 @customer.CustomerSites.UnitNo 来做到这一点

但我能走的最远的是@customer.CustomerSites

你对我在这里做错了什么有任何想法吗?

0 投票
2 回答
1763 浏览

asp.net-mvc - 如何使用 viewbag 将一列数据作为列表传递给强类型视图

谁能指出我正确的方向,如何使用 viewbag 将列表中的一列数据传递给强类型视图。我正在使用强类型视图传递 CustomerSites 列表。我还想在列表中的每个 CustomerSite 旁边显示一个 CustomerName。

我尝试了以下方法,但是当控制器返回客户列表时,它不允许我从视图访问 CustomerName 属性,是否可以从视图访问此属性?

0 投票
2 回答
6607 浏览

layout - 为什么当布局页面在~/Views/Shared 之外时,Razor 看不到 ViewBag、Url.Content 等?

我正在开发一个 CSS 框架,我可以将它作为 NuGet 包放入其他项目中。

为了保持整洁,整个框架——视图、样式、图像和母版页/布局页——实际上存储在 ~/CssThing/

与 WebForms 视图引擎完美配合,但是当我将 _layout.cshtml 文件移动到 ~/CssThing/ 然后修改我的 Razor 页面时说:

它开始抱怨 ViewBag 没有定义,或者那个The name 'Url' does not exist in the current context,或者其他各种奇怪的地方,表明视图不再从正确的基类继承。

我怎样才能让它工作?

注意:一切都像这样分开的原因是没有办法强制 NuGet 覆盖现有代码,并且没有办法在不拾取所有 jQuery 等引用的情况下启动一个空的 MVC3 Web 应用程序,所以与其冒险我的框架由于一半文件已经存在,所以部署一半,我将所有内容完全分开。