【问题标题】:can a mvc view model be used in a details form view [duplicate]可以在详细信息表单视图中使用 mvc 视图模型吗?
【发布时间】:2017-01-20 22:23:19
【问题描述】:

这个问题不是斯蒂芬列出的问题的副本。您列出的那个问题是超技术性的,除非您是某种编程大师,否则甚至不清楚要问什么……我认为在将其声明为 dup 之前应该考虑到这一点。寻求帮助的人会解决我正在寻找的问题,甚至不知道如何破译该问题中的问题,我的好先生。

是的,所以我有一个 mvc 应用程序,我试图显示一个连接的数据字段...进行了搜索,互联网显示了一个示例,其中用户创建了一个视图模型来执行连接的字段。想看的可以自己看:http://www.c-sharpcorner.com/uploadfile/e4ff85/let-mvc-concatenate-for-you/

因此,有问题的 mvc 应用程序首先使用数据库,并且向导自动构建了详细信息表单视图。对于数据库表调用,它在 mvc 控制器中有这个,因为我喜欢 MS sqlserver 视图:

原来的链接是:

TEST_REQUEST tEST_REQUEST = db.TEST_REQUEST.Find(id);

在添加到edmx后改为使用Sqlview如下:

VUE_TEST_DETAILS_FULL tEST_REQUEST = db.VUE_TEST_DETAILS_FULL.SingleOrDefault(r => r.RES_TEST_ID == id);

因此,当我将 mvc 详细信息表单更改为使用新视图模型时,我现在收到以下错误:

@model XXXXSystem.ViewModels.TEST_REQUEST_DETAILS_FULL_VM

在添加视图模型之前:

@model XXXXSystem.Models.VUE_TEST_DETAILS_FULL

但是现在为了进行这种连接,互联网指示用户 构建视图模型时失败并出现此错误。

我是否应该忘记使用视图模型,而只在更容易理解的 ms sqlserver 视图中进行连接?

谢谢大家!

错误: 传入字典的模型项是类型 'XXXXXXXSystem.Models.VUE_TEST_DETAILS_FULL',但是这个字典需要 “XXXXXXXXXSystem.ViewModels.TEST_REQUEST_DETAILS_FULL_VM”类型的模型项。

【问题讨论】:

  • 这是一个骗子。您需要阅读它并了解它发生的原因以及如何预防它!

标签: c# sql-server asp.net-mvc entity-framework asp.net-mvc-4


【解决方案1】:

您的视图需要一个 TEST_REQUEST_DETAILS_FULL_VM 类型,但您从控制器传递它 VUE_TEST_DETAILS_FULL 所以您会收到该错误。

在此行之后的控制器中:

VUE_TEST_DETAILS_FULL tEST_REQUEST = db.VUE_TEST_DETAILS_FULL
    .SingleOrDefault(r => r.RES_TEST_ID == id);

你需要这样做:

var vm = new VUE_TEST_DETAILS_FULL();
vm.SomeProperty = tEST_REQUEST.SomeProperty;
// more properties

// pass it to the view
return View(vm); 

话虽如此,那些变量名,我知道它们是自动生成的,因为你说你使用了一个向导,是可怕的名字。如果我是你,我会改变它们,但如果你不熟练,那就保持原样,因为你可能会破坏一些东西。

【讨论】:

  • 非常感谢 CodingYoshi 的帮助!!是的,我几乎不知道我在做什么,所以我只是让向导处理变量命名......再次感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-14
  • 1970-01-01
  • 2010-12-06
  • 2019-03-29
  • 1970-01-01
相关资源
最近更新 更多