Używanie edytowalnego atrybutu w modelu widoku MVC 3

Szukam atrybutów do oznaczania właściwości modelu widoku jako tylko do odczytu, aby pola widoku były odczytywane tylko w widoku renderowanym. Zastosowanie System.ComponentModel.DataAnnotations.EditableAttribute wydaje się być dokładnym atrybutem, którego potrzebuję, ale nie działa, tzn. Pola tekstowe są nadal edytowalne. Rozejrzałem się dookoła i nie mogę znaleźć odpowiedzi ani tylko kilku powiązanych pytań. Zastosowany poniżej atrybut edytowalny nie działa, gdy widok jest renderowany.

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

Mogę osiągnąć zachowanie tylko do odczytu za pomocą funkcji pomocnika widoku takiej jak ta, ale preferuję użycie atrybutu we właściwości modelu.

<code>@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())
</code>

Inne atrybuty działają idealnie poprawnie, w tym niestandardowe atrybuty sprawdzania poprawności. Czy możesz mi powiedzieć, czy atrybut edytowalny adnotacji danych działa w tym kontekście, czy powinien działać tak, jak to opisano powyżej, czy też jest coś jeszcze do zrobienia? Dzięki.

questionAnswers(5)

yourAnswerToTheQuestion