2016-03-28 2 views
0

Wenn ich die Visual Studio-Gerüstoptionen für Creating MVC View,using Entity Framework verwende, erzeuge Visual Studio Ansichten und setze den Namen von Model auf jede Ansicht und verwende DisplayName auch für Feldbeschriftungen. es interessiert sich für Display Annotation für Felder. z.B. Hier ist meine Modellklasse:Anzeigename für Modelle definieren

namespace ProjectManager.Models 
{ 
    [Display(Name="A More Readable Name for my class to display it to users!")] 
    public class MyVeryComplicatedlyNamedModel 
    { 

     [Display(Name="نام(Description for name field in Unicode)")]    
     string Name; 
    } 
} 

Die automatisch generierte Ansicht für sie wie unten:

@model Project.Models.MyVeryComplicatedNamedModel 

@{ 
    ViewBag.Title = "Details"; 
} 

<h2>Details</h2> 

<div> 
    <h4>MyVeryComplicatedNamedModel</h4> 

    .... 
    .... 

Ich möchte wissen, gibt es irgendwelche Methoden Display für die Klasse selbst festzulegen, so dass Titel Sicht was als h4-tag (<h4>MyVeryComplicatedNamedModel</h4>) angezeigt werden besser lesbar sein und ich kann meine eigene beschreibung wählen? Der entscheidende Punkt ist, ich weiß nicht automatisch erstellt Ansichten manipulieren will, dies zu tun, und ich möchte eine Art von Anmerkung verwenden Visual Studio zu helfen, meine eigene Beschreibung für Klassennamen zu wählen,

Mit Syntax Display(Name='') führt Attribute 'Display' is not valid on this declaration type. It is only valid on 'method, property, indexer, field, param' declarations. auf Fehler

+0

Warum willst du es in einer Klasse? – Shyju

+0

Um den Namen der Klasse automatisch in Ansichten einzufügen. – VSB

+0

Entschuldigung! Ich habe immer noch Schwierigkeiten zu verstehen, was Sie versuchen zu tun? Was möchtest du nochmal in Sichten machen? – Shyju

Antwort

3

HINWEIS: diese Antwort wurde vor Fragesteller hat die Klärung geschrieben, dass eine manuelle Änderung nicht, was Fragesteller hat nach ...

namespace Project.Models 
{ 
    public class Students 
    { 
     public readonly string DisplayName = "University Students"; 
    } 
} 

dann

im Hinblick
<div>@Model.DisplayName</div> 
war ist

Als Alternative - wenn Sie bei einem Attribut bleiben wollen (ich kann nicht sehen, warum, aber ...), können Sie möglicherweise zu einem anderen namens DisplayNameAttribute, aber dann müssen Sie möglicherweise einige zurückgreifen hässlicher Abruf in der Ansicht, da mir kein Html-Helfer bekannt ist, der das für Sie tut.

+0

Momentan wird ein Tag wie '

Studenten

' am Anfang jeder automatisch generierten Ansicht hinzugefügt. Im Fall von Modellen mit Namen wie UnitBasedContractPaymentRequest wird dieses Tag in automatisch generierten Ansichten '

UnitBasedContractPaymentRequest

' sein. Ich suche nach einer Möglichkeit, VS zu zwingen, meinen gewünschten Namen in automatisch generierten Ansichten zu verwenden. Kennen Sie irgendeine Methode dafür (die Ansichten nach ihrer Erzeugung nicht manipulieren muss)? – VSB

+0

Ich habe gerade meine Frage aktualisiert. Laut Ihrem Kommentar scheint das Standardgerüst von Visual Studio so begrenzt zu sein. – VSB

+1

@VSB Sie müssen Ihr benutzerdefiniertes Gerüst erstellen: Überprüfen Sie diesen Blogpost: [So erstellen Sie benutzerdefinierte Gerüst-Vorlagen in ASP.NET MVC] (https://www.credera.com/blog/technology-insights/microsoft-solutions/ create-custom-Gerüst-Vorlagen-asp-net-mvc /) – Balde