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

asp.net-mvc - ASP.net MVC2 在强类型视图之间传递数据

我有以下 MVC2 视图,它使用视图模型进行强类型化,视图模型包含一个数据库表中的值列表,我需要在视图中显示第二个表中的单个值,这是我的视图代码

这是视图模型,请注意我在视图模型中包含了一个客户成员,因为除了客户站点列表之外,我还想显示客户名称

这是我的视图控制器代码

这是我呈现列表的部分视图,

虽然智能感知让我从视图中访问客户对象

当我导航到视图时引发错误,

你调用的对象是空的。源错误:

我认为错误是由于视图呈现列表,我尝试将 viewmodel 成员更改为

但这也不起作用。

任何人都可以提出一种方法我可以实现这一目标或提供任何关于我哪里出错的建议这是一个我在下班后无法解决或在互联网上研究的问题?

0 投票
1 回答
1144 浏览

visual-studio-2010 - 在 ASP.NET MVC 3 中添加视图时缺少模型类

在我的 ASP.NET MVC 3 项目中,我引用了我的 DomainModel 项目。

当我尝试创建强类型视图时会出现问题。在模型类列表中,我的 DomainModel 模型不存在。

我做了以下尝试但没有成功(来自另一个线程):

我也尝试将 VS2010 更新到 VS2010 SP1 同样的问题。

有什么建议吗?

0 投票
1 回答
968 浏览

asp.net-mvc - 如何在 mvc 中的单个视图上显示编辑和详细信息

我正在寻找部分编辑我的模型 - 场景是我想显示 5 个字段和 2 个字段应该是可编辑的,当发布时它应该更新可编辑字段,强类型视图提供完全可编辑视图或详细视图,我怎么能同时拥有两者。任何建议或帮助将不胜感激。

谢谢

0 投票
5 回答
5820 浏览

c# - C# 中用于强类型视图的字符串格式

我想知道如何将强类型视图价格字段转换为 2 位说明符,就像我的数据库中有一个货币字段,例如将 15 转换为 15.0000,我想在视图中显示 15.00,下面是代码:

我尝试了类似但没有成功的方法:

0 投票
2 回答
1112 浏览

asp.net-mvc - ASP.NET MVC 中的多态性和强类型视图

我有一个问题,我有两个相同的表单,除了必填字段不同。例如,假设表单具有相同的字段:X、Y 和 Z。在 Form #1 中,X 是必需的,但在 Form #2 中,Y 是必需的。

所以我创建了两个视图模型,Form1 和 Form2,它们具有相同的属性,但在不同的属性上具有所需的属性。然后我创建了一个接口,我们称之为 IForm,两个模型都实现并构建了一个在 IForm 上强类型化的视图。

该解决方案的问题是 ASP.NET MVC 3 读取 IForm 上的属性而不是传递给视图的对象的动态类型,即 Form1 或 Form2,因此我没有得到客户端 JavaScript 字段验证我想。

我想知道除了为每个视图模型创建强类型视图之外是否还有其他解决方案。

0 投票
2 回答
4504 浏览

asp.net-mvc - ASP.NET MVC3,为什么即使在强类型视图中下拉列表也依赖viewbag

我是 MVC 的新手,所以也许这是一个愚蠢的问题 - 我试图了解 asp.net mvc 中的强类型视图。我正在开发版本 3。如果我有一个包含 2 个模型的项目 - 比如说 Person 和 Department。一个人必须属于一个部门。所以我有我的部门模型(并且我已经生成了我的控制器和 CRUD 接口):

然后我有一个引用 Department 的 Person 模型:

现在我生成我的控制器和视图。现在,当我查看 PersonController 时,我对 Create 有以下内容:

在 Person\Create.cshtml 中,创建部门下拉列表的代码是

据我了解,DropDownList Html 助手正在使用 ViewBag 创建我的下拉列表。但是,FirstName 和 LastName 似乎在不依赖 ViewBag 的情况下创建了它们的输入字段 - 所以在我的视图中,我可以在编译时检查我的 FirstName 和 LastName 字段,因为我的视图是强类型的,但不是在我的 DropDownList 上。

部门的 DropDownList 没有强类型,或者我做错了什么并且有办法使它强类型?

谢谢 :)

0 投票
1 回答
167 浏览

c# - 将强类型变量传递给视图的最佳方法是什么

有什么方法可以将多个变量传递给视图,以便使用类型成员和方法?

我想让我的编码更安全吗?ViewData不会通过强类型。

ASP.net 4 MVC 3 谢谢

0 投票
1 回答
1738 浏览

asp.net-mvc-3 - MEF 和 MVC 3 - 如何从 mef 容器动态加载嵌入式视图?

我正在构建一个使用 MEF 的 MVC 3 应用程序。主要思想是具有插件机制,其中模型、控制器和视图在运行时从 mef 容器动态加载。

每个插件/模块由两个程序集组成:

  • Module1.Data.dll(包含模型定义)
  • Module1.Web.dll(包含控制器和视图)

并放在 Web 应用程序 bin 内的 Plugins 目录中:

  • WebApp/Bin/Plugins/Module1.Data.dll
  • WebApp/Bin/Plugins/Module1.Web.dll
  • WebApp/Bin/Plugins/Module2.Data.dll
  • WebApp/Bin/插件/Module2.Web.dll
  • WebApp/Bin/Plugins/ModuleCore.Data.dll
  • WebApp/Bin/Plugins/ModuleCore.Web.dll
  • ETC...

还有一个核心模块被所有其他模块引用:ModuleCore.Data.dll 和 ModuleCore.Web.dll。

然后,在 Global.asax 中,容器按以下方式构建:

CustomViewEngine 被创建并注册并用于在模块组装中查找视图:

用于从容器加载控制器的控制器工厂:

以及用于从容器获取程序集的自定义虚拟路径提供程序:

好的,处理可插拔模型、控制器和视图的整个基础设施都准备好了。现在一切正常......除了一件事 -强类型视图

为了更详细地说明问题,让我们准备场景:

  • UserDTO 模型位于 Module1.Data.dll
  • ShowUserController.cs 位于 Module1.Web.dll/Controllers/
  • Index.cshtml 位于 Module1.Web.dll/Views/ShowUser (声明@model Module1.Data.UserDto)

现在我们执行以下操作:

  1. 运行应用程序并转到 HOST/ShowUser/Index(在 ShowUserController 上执行操作方法 Index 并获取视图 Index.cshtml)
  2. 获取视图 Index.cshtml 后 - 编译开始(通过 RazorBuildProvider)
  3. 抛出异常:“在命名空间 Module1 中找不到数据类型”,换句话说,在动态构建视图期间找不到 UserDTO

因此,编译器/构建器似乎没有查看 Module1.Data.dll 的 bin/Plugins 文件夹,因为当我将此文件复制到 bin 文件夹时 - 它的措辞很好。

问题/问题:为什么构建器没有查看 bin/Plugins 文件夹,即使此目录是由 AppDomain.CurrentDomain.AppendPrivatePath 方法添加的?如何为程序集生成器添加一次私有路径,以便将插件文件夹考虑在内?

我已经设法通过创建覆盖标准的 CustomRazorBuildProvider 来解决一些问题:

但是这种解决方案的缺点是每次编译视图时,都需要添加对Plugins文件夹中所有程序集的引用,这可能会在以后使用大量插件时导致性能问题。

有更好的解决方案吗?

0 投票
3 回答
5052 浏览

asp.net-mvc-3 - ASP.NET MVC 强类型 HTML 帮助器

让我们看看这一行:@Html.LabelFor(m => m.UserName) 它在带有这一行的页面上:@model CurrencyMvc.Models.RegisterModel

我假设当页面视图呈现时 LabelFor 会自动调用并引用所描述的模型,并且 Lambda 函数会告诉它如何从模型中获取所需的信息?

我不清楚为什么我们在可以传递实际值 egmUsername 时传递一个函数。

哦,当这个助手被调用时,“m”是从哪里来的?

0 投票
1 回答
684 浏览

c# - Asp.NET MVC 3 - 强类型视图中的泛型类型列表

我希望能够做一个强类型的视图/用户控件,其中类型是泛型类型的列表。像这样:

但不起作用,实际上是在搜索该类型。我需要它的原因是因为用户控件(仅显示分页)将与不同类型的对象列表一起使用,我不想为每个对象重新创建它。

有任何想法吗?