2017-08-23 2 views
0

Ich bin neu in ASP.NET Core und möchte nach der Anzeige eines Felds in einer Ansicht fragen. Ich habe einAnzeigen eines schreibgeschützten Felds in ASP.NET Core

class Person { 
    public string Name {get; set;} 
    public string Nickname {get; set;} 
} 

Typischerweise in der EditPerson Ansicht, ich

tun
<input asp-for="Name" class="form-control" /> 
<input asp-for="Nickname" class="form-control" /> 

um die Felder anzuzeigen.

Aber in meiner EditPerson Ansicht muss ich Name als readonly und als editierbares Feld anzeigen.

Die Name sollte nicht in einem Textbox sein (auch nur lesbar), sondern in einem Label oder div ...

Gibt es einen Standardansatz solche Felder angezeigt werden?

Ich möchte nicht, dass das Feld wieder auf das Modell oder DB aktualisiert werden, ich brauche nur das Feld zu lesen.

Antwort

2

Ausgabe als HTML mit Razor-Syntax

https://docs.microsoft.com/en-us/aspnet/core/mvc/views/razor

@Model.Name 
<input asp-for="Nickname" class="form-control" /> 

Hinweis - dies wird in geeigneter Weise müssen Styling oder Verpackung in <span> Tag etc ...

+1

Ich bin das Etikett Angst wird die Display des Feldes angezeigt werden, nicht der Feldwert, nicht wahr? – Serge

+0

Sie haben Recht, entfernt diesen Vorschlag – Alex

+0

Das sollte '@ Model.Name' sein –

1
[ReadOnly(true)] 
public string Name {get; set;} 

hinzufügen Readonly Attribut. Denken Sie daran, using System.Component; an der Spitze Ihrer Klasse aufzunehmen.

+0

Das würde das Feld readonly in allen Ansichten machen – Musab

+0

Ich habe nichts dagegen, das Feld in allen Ansichten readonly sein. .. – Serge

+3

Das hat absolut nichts damit zu tun, wie das Markup gerendert wird. – Alex

0

Dieser arbeitete für mich

<input asp-for="Name" class="form-control" ReadOnly="true"/> 
<input asp-for="Nickname" class="form-control" /> 
+0

zeigt es eine schreibgeschützte * Textbox *? – Serge

+2

Dies zeigt den Wert in einem Textfeld an.Das OP sagt 'Der Name sollte nicht in einer Textbox sein ' – Alex

+0

auch möchte ich nicht, dass das Feld zurück auf das Modell – Serge

0

Try this:

<label class="form-control">@Model.Name</label> 
0

bereits.

<input asp-for="Name" class="form-control" readonly="@(true)"> 
<input asp-for="Name" class="form-control" readonly="@(false)"> 

Diese machen:

<input class="form-control" type="text" id="Name" name="Name" value="Tom" readonly="readonly"> 
<input class="form-control" type="text" id="Name" name="Name" value="Tom"> 

ich es von hier realisiert: https://github.com/aspnet/Mvc/issues/7333#issuecomment-363504164

+0

guten Punkt, aber lesen Sie die OP * Der Name sollte nicht in einem Textfeld sein (auch Readonlyly) * – Serge

Verwandte Themen