问题标签 [viewdata]

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 投票
3 回答
11045 浏览

asp.net-mvc - 没有具有“IEnumerable”类型的键“Blah”的 ViewData 项'

此错误消息让我发疯。

我在将 Html.ListBox 和 Html.DropDownList HtmlHelpers 与 ASP.NET MVC v1.0 一起使用时得到它。填充列表工作正常 - 我可以查看它们等 - 但是当我使用传递给控制器​​的 FormCollection 在模型中创建新记录以获取所选值时,会发生此错误。根据其他几篇关于此事的帖子,我已经尝试了几种不同的配置和代码安排 - 不高兴。

希望有人能告诉我这是否是一个已知问题,以便我可以继续我的生活!如有必要,宁愿不必发布代码,但可以根据要求发布。

哦,建议的解决方法/解决方案也会很好;-)

蒂亚!

伯纳德。


好的,快速更新,我已经在下面的回复中发布了三条评论,以澄清关于我在这里做什么的详细信息。

我现在有另一个问题要分享 - 我已经尝试了 ScottGu 的替代推荐方法 - 实现 ModelView。所以,当我这样做时,它基本上是相同的场景,但我得到一个“对象引用未设置为对象的实例”。在我得到“没有带有'IEnumerable'类型的键'Blah'的ViewData项目。”的同一个地方出错。

我开始认为这可能与 EF 的工作方式有关......

0 投票
5 回答
2232 浏览

asp.net-mvc - ASP.net mvc 页脚常用数据

所以,我有一个页脚,它将出现在我的 Web 应用程序的每个页面上

我需要它来呈现动态数据......这意味着每个控制器动作都需要返回包含此数据的 viewData ......以及特定于动作的数据

你们将如何实现这一点?也许是基本控制器的构造函数?

0 投票
2 回答
259 浏览

asp.net-mvc - 在 asp.net mvc 中,我应该将强类型视图数据引用放在我的视图页中的什么位置?

我的 viewpage 没有代码隐藏,那么我如何告诉它使用强类型的 viewdata?

0 投票
3 回答
175 浏览

asp.net-mvc - 模型绑定列表

我有一个控制器动作,比如

视图> 看起来像:

显然这种观点是行不通的。我只是无法访问视图中的列表。

这方面的文档也已经过时了,似乎很多模型绑定列表的功能在 beta 版中都发生了变化。

0 投票
4 回答
9619 浏览

asp.net-mvc - 你如何在 asp.net mvc 中持久化查询字符串值?

在 asp.net mvc 中保留查询字符串值的好方法是什么?

如果我有一个网址:/questions?page=2&sort=newest&items=50&showcomments=1&search=abcd

在分页链接上,我想在所有链接中保留这些查询字符串值,以便它们在用户单击“下一页”时保持不变(在这种情况下,页面值会改变,但其余部分会保持不变)

我可以想到两种方法来做到这一点:

  1. 视图中的 Request.Querystring 并将值添加到链接
  2. 使用 ViewData 将每个查询字符串值从控制器传回视图

这个比那个好吗?这些是唯一的选择还是有更好的方法来做到这一点?

0 投票
3 回答
2559 浏览

c# - 强类型母版页多态性 - 嵌套母版页忽略继承属性

我目前正在创建一个CMS系统,发现以下不起作用。

我确实有一个不太理想的解决方法,而且感觉很脏。我现在对此很满意,并且对不同的方法并不真正感兴趣(但不要让它阻止你回答)。我所追求的是某种关于它为什么不起作用的解释——它是 ASP.NET MVC 中的一个错误吗?

很难解释,所以我会让我的代码(减去很多绒毛)来说话......希望它有意义!

编辑:编译器似乎完全忽略了第二个母版页的“继承”属性——见问题的底部。

ContentViewData.cs - 注意它继承自BaseViewData

Site.Master - 注意BaseViewData类型的强类型视图数据

Content.Master - 注意ContentViewData类型的强类型视图数据以及它是Site.Master的子母版页的事实

内容项目图像.ascx

现在在 Content.Master 中,如果我尝试渲染 ContentItemImage 部分并像我一样引用 ContentViewData 对象(特别是“ContentItem”属性)上的属性 - 在下面重复。

如果跌倒在那条线上并出现以下错误

编译错误

CS1061:“object”不包含“ContentItem”的定义,并且找不到接受“object”类型的第一个参数的扩展方法“ContentItem”(您是否缺少 using 指令或程序集引用?)

但是,如果我像这样改变事情,一切都很好而且花花公子。

Content.Master - 请注意,我将整个模型(ContentViewData 对象)传递给 RenderPartial(),而不是尝试引用 ContentViewData 对象上的属性

ContentItemImage.ascx - 注意从 MyCMS.Data.Models.Content 更改为 ContentViewData 类的强类型视图数据。

所以,是的,这行得通,但它不是不在场证明。

在此先感谢,查尔斯。

编辑:有趣的是,编译器似乎完全忽略了第二个母版页的“继承”属性。

例如。我可以做到这一点,它仍然可以毫无怨言地编译......

0 投票
2 回答
4311 浏览

c# - ASP.NET MVC:如何处理交叉操作 TempData 和 ViewData

我正在尝试找到一种处理以下情况的好方法(我对此还是有点陌生​​):

用户可以使用 RPX/OpenId 提供程序通过我的站点进行注册。

第 1 步:用户通过提供者进行身份验证。提供者将一个临时令牌返回给我的一种操作方法。

第 2 步:我使用令牌获取用户的个人资料信息并加载允许他们输入任何缺少的必填字段和可选字段的视图。

我在第 2 步中使用了 2 种操作方法:一种使用令牌来处理信息的获取。获取授权信息并加载缺失/可选字段视图的第二个操作。

我通过 TempData 将授权信息传递给第二个操作。第二个操作可以处理验证,因此我有可能需要保留授权对象来处理超过 1 个请求。我不能使用令牌来重新生成授权信息,因为它在技术上是一次性令牌,并且重新生成请求会很愚蠢,因为它正在使用网络资源。

对于同一操作的任何后续请求,我如何将对象保留在我的 TempData 中,但删除任何重定向的对象?由于这在我的应用程序中可能是可重复的模式,我应该创建一个过滤器来自动处理这种情况吗?

例如,我想象一个过滤器属性,它将 TempData(如果有的话)合并到 ViewData - 但是我如何将我的数据保存到未来对同一操作的调用中?再次将其放入 TempData 中?如果我检测到重定向清空 TempData?

谢谢

0 投票
2 回答
440 浏览

asp.net-mvc - ViewData 不继承部分

当特定列表页面没有数据时,我试图使用共享的局部视图来呈现。我想使用 ViewData 将信息从页面传递到我的列表控件,然后使用 ViewData 值有条件地呈现 NoData 部分视图。

我希望能够在视图标记中指定它们,而不是在控制器操作中,但是当我将它们添加到视图中时,它们似乎不会继承到子部分视图(如 Nodata 部分视图)中。但是,在控制器操作的 ViewData 值中指定它们可以正常工作,数据一直可用...

有谁知道它为什么会这样?

0 投票
1 回答
614 浏览

asp.net-mvc - 查看模型 (ViewData)、UserControls/Partials 和全局变量 - 最佳实践?

我试图找出一种在我的所有部分以及我的视图中都有“全局”成员(例如 CurrentUser、Theme 等)的好方法。

我不希望有一个可以返回此数据的逻辑类(例如 BL.CurrentUser) 我确实认为它需要成为我视图中模型的一部分所以我尝试使用这些成员从 BaseViewData 继承。在我的控制器中,以这种或其他方式(我的 BaseController 中的过滤器或基本方法),我创建了继承类的实例并将其作为视图数据传递。到目前为止一切都很完美,因为我的视图数据可以在主视图上与基本成员一起使用。但是部分呢?

如果我有一个需要显示博客文章的简单部分,那么它看起来像这样:

以及在我看来呈现这个部分的简单代码(它的 model.Posts 是IEnumerable<Post>):

由于局部模型不是 BaseViewData,因此我无权访问这些属性。因此,我尝试创建一个名为 PostViewData 的类,它继承自 BaseViewData,但随后我的包含视图将有一个代码来实际在其中创建 PostViewData,以便将其传递给部分视图:

或者我可以使用复制构造函数

我只是想知道在我继续之前是否还有其他方法可以实现这一点。

有什么建议么?

谢谢!

0 投票
2 回答
299 浏览

asp.net - Passing ViewData versus making a new class

I've seen several posts on StackOverflow and elsewhere discussing the various ways to bring together data from multiple entities into a strongly typed view, these being using the ViewData object or constructing a new custom class that utilizes both entities.

To me it seems that if you are representing some sort of new hybrid entity you would want to make a new class and treat it as such. However, I can see the reason for using view data if you're passing in data for things that aren't necessarily part of the entity you're working with, but are still in your model, such as drop down lists or other UI elements.

I see people advocating one or the other for various reasons and I was wondering is there any rule as to when to use one over the other?