2017-12-17 3 views
0

Ich lerne und ich versuche, den Parameternamen meiner automatisch erzeugten Teilklasse mit [Display()] -Attribut zu ändern, aber ich bekomme diese Fehlermeldung.ASP MVC 5 teilweise, Klassenparameter Problem

Schweregrad Beschreibung Projekt Datei Zeilenunterdrückungsstatus Fehler CS0246 Der Typ oder Namespacename 'Student_Age' konnte nicht gefunden werden (fehlt eine using-Direktive oder eine Assemblyreferenz?) EFScuffolding C: \ Users \ kusha \ source \ repos \ EFModel \ EFScuffolding \ Models \ Students.cs 20 Aktive

das ist mein automatisch generierte Code für Studenten-Klasse

  namespace EFDemo.Models 
      { 
       using System; 
       using System.Collections.Generic; 

       public partial class Student 
       { 
        public int StudentID { get; set; } 
        public string Student_Name { get; set; } 
        public string Student_Major { get; set; } 
        public Nullable<int> Student_Age { get; set; } 
       } 
      } 

Dies ist die Klasse I, die Parameter für die Anzeige zu ändern, bin mit

 using System; 
     using System.Collections.Generic; 
     using System.ComponentModel.DataAnnotations; 
     using System.Linq; 
     using System.Web; 
     using EFScuffolding.Models; 

      namespace EFDemo.Models 
      { 
       [MetadataType(typeof(StudentMetaData))] 
       public partial class Student 
       { 

       } 
       public class StudentMetaData 
       { 
        [Required] 
        public int StudentID { get; set; } 
        [Required] 
        [Display(Student_Age = "Student Name")] 
        public string Student_Name { get; set; } 
        [Required]`enter code here` 
        [Display(Student_Major = "Student Major")] 
        public string Student_Major { get; set; } 
        [Required] 
        [Display(Student_Age = "Student Age")] 
        public Nullable<int> Student_Age { get; set; } 

       } 
      } 

Ich verwende MVC 5, EF6 und Visual Studio 17. Ich vermisse etwas im Code.

+0

Ich ADO.NET Entity-Modell verwendet, um den Code für das Modell zu generieren, und ich bin in der Lage, die Überprüfung der Parameter mit [Erforderlich] zu verwenden. Ich habe kein Problem damit Fehler nur für [Anzeige] -Attribut.Ich kann Daten abrufen und ohne Problem anzeigen.Ich kann die Anzeigenamen jedoch nicht ändern, – Kushal

Antwort

0

Sie verwenden die DisplayAttribute nicht korrekt. Sie müssen ihre Name Eigenschaft auf den Text setzen Sie

[Display(Name = "Student Name")] // not Student_Age = "Student Name" 
public string Student_Name { get; set; } 

und dito für die anderen 2 Eigenschaften

jedoch in asp.net-mvc angezeigt werden soll, Ansicht Modelle verwenden, nicht Teilklassen. Siehe What is ViewModel in MVC?

+0

Vielen Dank, es funktioniert jetzt, nachdem der Code wie von Ihnen erwähnt geändert wurde. – Kushal

+0

Sorry, ich wusste nicht die Option, dass ich die Antwort akzeptieren kann. Danke. – Kushal