c# - Viewmodel 没有定义键

标签 c# asp.net-mvc entity-framework viewmodel

我必须先说我是 View 模型的新手。话虽这么说,我想创建一个包含付款和订阅信息的 View ,例如付款注册页面。我想更新我的 EF 模型中的多个实体,我正计划通过 View 模型进行更新。问题是当我尝试根据我的 Controller 操作创建 View 时..我收到此错误: enter image description here

我的 View 模型使用一个独立的类来获取/发布数据到我的 View ...也许我做错了......它必须有一个主键吗?它是否需要在我的数据库中并作为 EF 实体添加? 我该如何解决这个问题?谢谢

这是 View 模型代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MVCProject.DataAccess;
using System.ComponentModel.DataAnnotations;

namespace MVCProject.Models.ViewModel
{
    public class PaymentSetupViewModel
    {
        //Subscription.cs
        [Required(ErrorMessage = "required")]
            public string Frequency { get; set; }
            public DateTime Date { get; set; }

        //PaymentMethod.cs    
        [Required(ErrorMessage = "required")]
            [CreditCard]
            [Display(Name = "Card Number")]
            public string CCNumber { get; set; }

            [Required(ErrorMessage = "required")]
            [Display(Name = "Card Expiration")]
            public DateTime CCExpiration { get; set; }

            [Required(ErrorMessage = "required")]
            [Display(Name = "CVV2")]
            public string CCCVV2 { get; set; }

            [Required(ErrorMessage = "required")]
            [Display(Name = "Bank Name")]
            public string BankName { get; set; }

            [Required(ErrorMessage = "required")]
            [Display(Name = "Account Number")]
            public string BankAccountNumber { get; set; }

            [Required(ErrorMessage = "required")]
            [Display(Name = "Routing Number")]
            public string BankRoutingNumber { get; set; }

            [Required(ErrorMessage = "required")]
            public string ProductName { get; set; }

        //AspNetUser.cs properties -- identity list of logins
        public string UserName { get; set; }

        //PaymentSubscriptionViewModels.cs properties    
        public int SelectedValue { get; set; }
    }
}

最佳答案

即使这是一个已回答的老问题,我认为这可能会有所帮助: 创建 View 时(我怀疑在这种情况下是部分 View ),删除数据上下文类值。如果已设置,即使您创建的是基于非 Entity Framework 的 View ,Visual Studio 也会认为您使用的是 Entity Framework ,因此会抛出该错误。

关于c# - Viewmodel 没有定义键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34244819/

相关文章:

c# - 如何从字典中获取第 n 个元素?

c# - 在组连接 linq 查询中将字符串转换为十进制

c# - HasOptional 对应的 DataAnnotation 属性

c# - 使用属性防止在 ASP.NET MVC 中缓存特定操作

c# - 如何使用 EF 在 ASP.NET MVC 中自动创建数据库和存储库?

entity-framework - nHibernate 公式映射的 EF 等效项

c# - 比较 DataGridView 单元格中的新旧值

c# - 如何在 C# 中创建变量(非类成员) "read only"

c# - C# 语言命令的 Razor 语法

c# - "Unwrapping"发布 JSON