使用视图模型

时间:2015-05-02 22:48:11

标签: vb.net asp.net-mvc-5 entity-framework-6 asp.net-mvc-partialview asp.net-mvc-viewmodel

我一直在尝试在VB.Net中编写的MVC 5应用程序中加载多个局部视图。不要问为什么VB,客户坚持它。

该应用程序有一个从六个查找表中提取的表单,我需要创建一个管理员可以编辑这些查找表的值的表单。 该应用程序有一个edmx,主要表单构建在上面并包含这六个表格,这些表格非常适合创建主表单,但我找不到任何方法来创建6个部分视图并将它们加载到单个表单中。

我已尝试How to Return partial view of another controller by controller?加载我的部分内容,并根据其他帖子创建了单独的类和视图模型。

这是我尝试过的没有运气的类和视图模型中的代码。

我的课程。

    Public Class CotListIems
Partial Public Class PlanList

    Public Property Id As Integer
    Public Property Superior As Decimal
    Public Property Royal As Decimal
    Public Property Maximo As Decimal
    Public Property Manual As Boolean
    Public Property ManSuperior As Nullable(Of Decimal)
    Public Property ManRoyal As Nullable(Of Decimal)
    Public Property ManMax As Nullable(Of Decimal)
End Class
Partial Public Class PlanRateList
    Public Property Id As Short
    Public Property Plan As String
    Public Property Rate As Decimal
End Class
End Class

我的视图模型

Public Class AdminViewModel
Public Property PlanList As IEnumerable(Of PlanList)
Public Property PlanRateList As IEnumerable(Of PlanRateList)
End Class

我的控制器

Function Admin(ByVal id As Integer?) As ActionResult
        Dim viewModel = New AdminViewModel()
        viewModel.PlanList = db.Plans.Include(Function(i) i.Id).Include(Function(c) c.Superior).Include(Function(c) c.Royal).Include(Function(c) c.Maximo).Include(Function(c) c.Manual).Include(Function(c) c.ManSuperior).Include(Function(c) c.ManRoyal).Include(Function(c) c.ManMax)
        viewModel.PlanRateList = db.PlanRates.Include(Function(i) i.Id).Include(Function(c) c.Plan).Include(Function(c) c.Rate)
   Return View(viewModel)
End Function

我在这里添加的控制器是我试图创建的控制器,但我也尝试过支架控制器。

当我尝试根据我的视图模型构建一个新控制器时,我得到实体类型'AdminViewModel'没有定义键。为此EntityType定义一个键。 我找不到有关如何为此定义密钥的任何信息,仅针对C#,所有VB文档似乎仅适用于匿名类型,并且看起来是静态硬编码密钥值。

我真的被困在这里,因为它似乎有很多方法,我想要做的就是在同一页面上列出六个查找表的内容,每个部分都有编辑链接,以便在另一个视图中加载它们。 谢谢,我知道这可能是基本的东西,但它现在让人感到困惑和非常沮丧。

0 个答案:

没有答案