Mit Editable-Attribut auf MVC 3-view-Modell

Ich bin auf der Suche über Attribute markieren view-model-Eigenschaften readonly, so dass die view-Felder können nur gelesen werden in der gerenderten Ansicht. Die Anwendung System.ComponentModel.DataAnnotations.EditableAttribute erscheint, werden die genauen attribute, die ich brauche, aber es scheint nicht zu arbeiten, D. H. textbox-Felder noch bearbeitet werden. Ich habe sah überall, und Sie finden keine Antworten und nur ein paar Fragen. Das editable-Attribut angewendet wird wie unten funktioniert nicht, wenn die view gerendert wird.

[Display(Name = "Last Name")]
[Editable(false, AllowInitialValue = true)]
public string LastName { get; set; }

Kann ich erreichen das readonly-Verhalten mit einem view-helper-Funktion wie diese, aber meine Vorliebe ist die Verwendung eines Attributs für die Eigenschaft model.

@functions {
    object getHtmlAttributes()
    {
    if (@ViewBag.Mode == "Edit")
    {
      return new {style = "width:100px;background:#ff6;", @readonly = "readonly"};
    }

    return new { style = "width:100px;" };  
}
} 

@Html.TextBoxFor(model => model.FirstName, getHtmlAttributes())

Anderen Parametern arbeiten völlig in Ordnung, einschließlich benutzerdefinierte validierungsattribute. Können Sie mir sagen, ob die Daten Anmerkungen editable-Attribut funktioniert in diesem Kontext soll nur die Arbeit als angewandte oben oder ist es etwas anderes, das getan werden muss? Danke.

  • Auf der create view-wir möchten, dass Benutzer in der Lage sein, um erste Werte für alle Felder, aber einmal in der Bearbeiten-Ansicht einige dieser Felder brauchen, um sich readonly.
InformationsquelleAutor Steven Chalk | 2012-04-13
Schreibe einen Kommentar