问题标签 [asp.net-mvc-viewmodel]

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

asp.net - 在单个视图中传递多个视图模型

即使我相信我已经定义了所有模型并希望正确传递,但我收到一个错误,指出当需要另一个模型时我正在传递一个模型。

主视图:

楷模:

用户名操作 GET:

用户名 POST 操作:

配置文件操作:

用户名的查看页面:

错误信息: The model item passed into the dictionary is of type 'Project.Models.ProfileModel', but this dictionary requires a model item of type 'Project.Models.UsernameModel'.

非常感谢我哪里出错的任何帮助。

0 投票
1 回答
1181 浏览

asp.net-mvc-4 - 视图中的多个模型错误

我有一个视图页面,该页面具有不同模型的不同部分视图。我创建了一个模型类,它将调用其他类,因此我可以在主视图页面上使用它。但我的问题是,当我尝试更改密码时,它给了我一个错误,我正在传递一个模型,我需要传递另一个模型。我相信我的结构是正确的,但不确定是什么导致了这个问题。

主视图:

Profile Model:包含我创建的模型

控制器:

邮政:

查看密码更改页面:

我得到的错误: The model item passed into the dictionary is of type 'Project.Models.LocalPasswordModel', but this dictionary requires a model item of type 'Project.Models.ProfileModel'.

0 投票
3 回答
1936 浏览

asp.net-mvc-3 - 在视图中获取路线 {id} 值?

我知道我是否有类似/controller/action/{id}可以访问 id 作为函数参数的东西。但是我如何在不使用 viewbag 的情况下通过视图访问它?

0 投票
2 回答
9559 浏览

asp.net-mvc - 使用 MVC ASP.NET 将数据插入多个表

我是 MVC ASP.NET 的新手。虽然这可能在过去已经解决了,但我仍然无法得到一个完整的解决方案来解决我的问题。

问题:我有两张桌子
视频

列是:VideoID、FlimName、描述

视频详情

列是: VideoDetailsID 、 Actor 、 VideoID (来自表视频的外键)

我希望从我的 MVC 模型中将数据插入到这两个表中。[首先插入Video Table ,然后是VideoDetails 与 Video Table 的主键,即 VideoID 也与VideoDetails Table 的记录一起插入]。

我已经找到了一些解决问题的方法,但它似乎并没有合并成一个完整的解决方案。

我可以在逐步解决这个问题的方法上获得一些有用的链接,或者有人可以帮助我解决这个问题。

我在这个论坛上阅读了 ViewModel 方法,但仍不清楚它的功能和流程。请帮忙。

谢谢,

曼格什

0 投票
2 回答
2326 浏览

asp.net-mvc - 具有嵌套视图模型和淘汰赛的 ASP.NET MVC

无法理解如何为以下 ASP.NET MVC 4嵌套视图模型实现淘汰赛:

在视图中,我接受这样的模型:

EditorTemplateList1看起来像这样,其中包含多个问题:

编辑

除了验证逻辑之外,VM1 到 VM10 是相同的,所以我必须使它们成为不同的类(不幸的是,因为它在模型和视图中重复了很多次)。

客户端 - 这就是我要问的问题:我需要从包含嵌套列表的 ASP MVC 模型中传递,并将它们呈现在客户端上并进行剔除(我发现它在动态列表方面做得最好)。它类似于 gmail 联系人 - 你有家庭/工作/移动/传真电话 - 所以一个列表是电话的标签(它是什么电话)并且应该显示为组合框,另一个是可以增加的电话动态列表根据用户点击。

结束编辑

  1. 我不明白如何从这个嵌套模型创建一个淘汰视图模型,显然 Name 应该是它的一部分,但其余的是列表,它们也包含列表。

  2. 如何映射它?

  3. 如何处理它(一个进入下拉列表,这将是另一个列表的标签,它的长度是可变的——这里使用敲除的唯一原因)。?

  4. 填写完成后,如何将它们组合在一起并运回控制器操作?

  5. 当标签是名称标签的下拉列表(或组合框)时如何编写该编辑器模型(例如:[label]home/work [name]email、[label]mobile/home/car [name]phone)

如果它是带有IList内部的简单类 - 就像这里一样。问题是列表中有列表,Knockout 要求一切都是可观察的,不知道如何在 java 脚本中表达这种嵌套模型。

请帮忙。提前致谢!

0 投票
3 回答
34621 浏览

asp.net-mvc-3 - ASP.NET MVC 视图模型未绑定到带有 DropDownList 的 HTTP Post

我有一个问题,当我发布到控制器时,我失去了绑定,并且我的视图模型中的所有内容都是 NULL。这是我正在使用的代码:

看法:

视图模型:

控制器:

为什么我的视图模型中的所有内容都为 NULL?我可以在使用 Chromes 工具时看到,在帖子中为字符串和整数发布了值...作为解决方法,我刚刚完成了以下操作以使代码正常工作:

解决方法控制器:

谢谢

0 投票
1 回答
265 浏览

asp.net-mvc - MVC 剃须刀布局 - 从视图修改

这是我的布局页面:

我想根据服务器端加载的视图修改 actionlink“selected”类。我正在寻找可用的选项。

最好的祝福

0 投票
1 回答
958 浏览

asp.net-mvc - 带有组合框的 Knockout 可变长度列表的 ASP.NET - 如何绑定?

使用以下 ASP.NET 模型

用虚拟数据填充它并作为User对象发送到适当的视图,我在视图中有以下剔除定义:

最后,实际上应该处理可变长度列表的编辑器模板如下所示:

本质上我

  1. 无法使其在EditorTemplatefor 组合框(或下拉列表)中工作。无论我做什么,它都不会附加到标签上。如果我将它带到其他地方的模板之外 - 它会按预期工作。
  2. 此外,根据选择填写电子邮件内的“SelectedValue” - 如何执行此操作。

  3. 选择所有内容后,(这必须很简单)如何将其全部发布回来而不会丢失值(如您所见,它是一个超级嵌套模型)。

非常感谢您!

0 投票
1 回答
3078 浏览

asp.net-mvc - 淘汰视图模型部分回发到 ASP.NET MVC - 如何回发完整对象?

拥有这些 ASP.NET MVC 视图模型:

和像这样的淘汰赛视图模型:

正确回传到控制器的是User.Name,但是User.LabeledEmail是空的。我必须按照我的方式展平模型,以便能够在其他地方单独使用列表。事实上,我知道 viewModel.Emails 在保存时已正确填充,但 User.LabeledEmails 以某种方式返回 null。

它基本上归结为分配Model.LabeledEmail.EmailsviewModel.Emails交易将得到解决,似乎,但我不知道如何也找不到任何合适的例子。

  1. 我犯了什么错误
  2. 如何正确地做到这一点?

先感谢您。

0 投票
2 回答
2302 浏览

asp.net-mvc-4 - MVC 验证在 Knockoutjs 帖子中丢失

我正在使用 MVC4 和淘汰赛。我在页面上有一个强类型为视图模型的表单。在该视图模型中,我定义了一些验证,例如:

如果我在未填写必填字段的情况下向表单发送标准帖子,我的操作会看到模型无效并返回视图,并且会显示一条主要验证消息,因为我@Html.ValidationSummary的表单中有。单个字段也被标记为无效(带有消息),因为我已@Html.ValidationMessageFor与该字段相关联

所以然后我添加了淘汰赛,而不是仅仅发布我现在调用的表格ko.utils.postJson($("form")[0], self);。现在大部分工作正常,如果我发布未填充必填字段的表单,我的操作会检测到模型无效并返回视图,但现在没有显示单独的验证消息。

帖子前填写的字段也丢失了。我试图通过读取 mvc 视图模型并将变量设置为这些值来解决这个问题。

然后在我的淘汰赛视图模型中设置该值

但是当我输入'1'时,当失败的帖子返回时,它会用'“1”'填写该字段。

这不是一个太复杂的表单,所以如果可以避免的话,我不想引入一些新的验证层。我不介意有一个验证帖子。

谢谢,丹