问题标签 [strongly-typed-view]

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 回答
1776 浏览

asp.net-mvc - 使用 ASP.NET MVC 将数据传递到母版页

我有一个混合 ASP.NET WebForms/MVC 项目。在我的母版页中,我有一个“菜单”用户控件和一个“页脚”用户控件。无论如何。我需要将一些数据(2 个字符串)传递给我的母版页上的“菜单”用户控件(以在我的菜单导航中选择当前选项卡等)。我的视图对我的数据模型是强类型的。如何将数据从我的控制器推送到我的菜单,或者至少允许我的母版页访问我的控制器中预定义的一些数据?

注意:我知道这违反了纯 ASP.NET MVC,但就像我说的,它是一个混合项目。我将 ASP.NET MVC 引入我的项目的主要目的是仅在某些情况下对我的 UI 进行更多控制。

0 投票
1 回答
298 浏览

asp.net-mvc - ASP.Net MVC,不接受带有 DateTime 的强类型视图?

我希望创建一个像

但我收到一条错误消息,指出 DateTime 必须是引用类型才能用于参数 TModel。

很公平,但我在谷歌上搜索了很多实现我试图实现的目标的例子。

关于我需要更改/安装/更新什么的任何线索?

欢迎任何意见,

丹麦安德斯

0 投票
1 回答
743 浏览

asp.net-mvc - asp.net mvc-2 中的一页上的强类型部分视图是否应该具有一个组合视图模型?

我有一个关于 asp.net mvc-2 强类型部分视图和视图模型的问题。

我只是想知道我是否可以(或应该)在一个页面上有两个强类型的部分视图,而无需为该页面实现全新的视图模型。

例如,我有一个显示个人资料的页面,但也有一个用于添加快速联系人的内联表单。这些实体中的每一个都已经有它自己的视图模型,即我有一个 ProfileViewModel 和一个 ContactViewModel。

所以我的视图需要两个强类型的局部视图,一个使用 ProfileViewModel 的 IEnumerable 列表,一个使用 ContactViewModel。是否有可能或需要避免制作第三个视图模型,即此页面的“IndexViewModel”,其中包含 ProfileViewModels 列表和 ContactViewModel?实现这个视图模型是不好的做法,还是因为它导致更少的视图模型而更整洁?

谢谢!

0 投票
1 回答
343 浏览

asp.net-mvc - 使用接口在 MVC 中添加视图时无法选择查看内容下拉列表

我在两个项目中外部定义了我的模型——一个核心项目和一个接口项目。

我正在从我的控制器中打开Add View对话框,然后选择Create a strong typed view

在下拉列表中,我可以选择 MyProject.Model.Core.OrderDetails 等具体类型,但MyProject.Model.Interface.IOrderDetails等接口类型不存在。

我可以手动输入界面类,一切正常,但是允许您选择创建、删除、列表等脚手架的查看内容菜单被禁用。

在 MVC 中使用接口有什么问题吗?还是我缺少其他东西?

编辑:澄清一下,如果我选择具体对象和我想要的任何脚手架,然后我可以Inherits在视图页面指令中编辑标签,一切正常,所以没有缺少参考或任何东西。只是向导似乎不想使用该界面。

0 投票
4 回答
1067 浏览

.net - ASP.NET MVC 强类型视图编译错误

这是一个奇怪的问题。我改变了一些东西(不确定是什么),现在我的应用程序视图在运行时无法编译。

视图本身是强类型的:

当我访问该页面时,它无法编译,说:

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

相当标准的错误。对应的源代码行是:

当我查看编译器生成的代码时,我看到视图的基类不是强类型的:

所以我的问题是,是什么导致视图编译器忽略了我Inherits在视图定义中的属性?

我应该指出,同一控制器上的其他视图正在工作,并且它们具有与我在上面显示的完全相同的页面声明。

编辑有没有人知道生成的源代码文件在哪里,假设它被保存在某个地方?

编辑我找到了罪魁祸首(在下面的回答中),但我不知道为什么会这样。如果有人可以解释,我将不胜感激!

0 投票
2 回答
3044 浏览

asp.net-mvc - 在两个不同的强类型视图中渲染一个局部视图

我有一个强类型的 Person 视图,我想在其中呈现部分视图:

人员视图(强类型为人员)

AddressForm 视图(无类型,因为我也想在 Distributor 强类型视图中使用它)

当我尝试从 Person 视图调用此部分时,我收到此错误:

编译器错误消息:CS1963:表达式树可能不包含动态操作

源错误:

我怎样才能让这个部分呈现,以便我可以在多种其他类型中使用我的部分 addressView?

编辑:

错误如上。

0 投票
2 回答
1424 浏览

asp.net-mvc - mvc 重建强类型视图

当模型类添加了新字段时,有什么方法可以重新构建强类型视图?

目前我还没有修改初始生成的视图,所以删除和重新创建不是问题。

当我开始根据自己的喜好自定义它时,我将丢失所有更改,我想知道是否有一种很好的方法来管理它?

谢谢

0 投票
2 回答
190 浏览

asp.net-mvc - 应该在哪里为 Asp.net MVC 视图准备非视图模型对象

我需要一些清晰的思维来提供一些好的建议,这种事情应该如何做到最好。

问题

我正在构建一个 Asp.net MVC 应用程序。我的大多数视图顶部都有一个工具栏。工具栏上可以有几个不同的项目,例如:

  • 纽扣
  • 笔记
  • 刷新项目(用于将一些按钮放在工具栏最右侧的动态宽度空间)
  • 等等

为了遵循DRY 原则,我创建了一组共享部分视图(ToolbarToolbar.Button),它们呈现预定义的工具栏对象。这些局部视图当然是强类型的。

然后我有我的强类型视图,其模型与它们显示的数据相关。但他们也经常有一个工具栏。所以在调用之前Html.RenderPartial("Toolbar", toolbar)我必须准备这个IList<ToolbarItemBase>对象列表来传递给它。

问题是我正在视图本身中准备这些。此工具栏对象列表对于特定页面始终相同,并且也是本地化的。工具栏按钮项还具有Url使用Url.Action()帮助器设置的属性,这使得不可能简单地将序列化的工具栏实例存储在数据库中。问题是这些工具栏定义可能会变得非常大(想想 Word 功能区和其中的项目数量)

问题

你有什么建议,我应该在哪里创建我的本地化工具栏实例而不会使视图代码混乱?由于它们根本没有改变,我猜它们很可能是静态的......

0 投票
2 回答
1142 浏览

asp.net-mvc - ASP.NET MVC 强类型视图与否?

最佳实践是什么 - 仅使用不带任何参数的强类型视图,通过 ViewData 字典,或者在视图中使用类似这样的东西是一个不错的主意:

谢谢。

0 投票
1 回答
302 浏览

asp.net-mvc-2 - Asp MVC 2:类型化编辑器模板

(我在本文中参考了本教程)

我想使用 Html.EditorFor(或 Html.Editor)助手。

如果 UserControl 需要其他数据,则通过

...EditorFor(model => model.Album, new { Artists = Model.Artists, ... })

在 UserControl 中,它是通过ViewData[ stringKey ]访问的,即

... new SelectList(ViewData["Artists"] as IEnumerable, ...

对我来说,这有点可疑,因为我更喜欢强类型的 ViewModel来确保特定数据可用。

我现在有点卡住了,因为我不知道有一种“打字方式”可以找到,或者我应该按原样接受这种方式。

你是如何解决这个问题的?任何帮助表示赞赏!


华拉巴