que tiene este modelo:MVC 3 vista de edición para ciertos campos sólo
public class ExchangeRate
{
[Key]
public int ExchangeRateID { get; set; }
[Required]
[Display(Name = "Currency:")]
public string Currency { get; set; }
[Required]
public decimal Rate { get; set; }
}
El "Crear" vista está trabajando muy bien, pero cuando estoy en la vista de edición, lo único que quiere la propiedad de divisas que se mostrará y no editable ¿Cómo debería hacer esto? Si creo otro modelo de "solo lectura" para esta clase, omitiría la propiedad "Moneda" y no podría mostrarla.
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>ExchangeRate</legend>
@Html.HiddenFor(model => model.ExchangeRateID)
<div class="editor-label">
@Html.LabelFor(model => model.Currency)
</div>
<div class="editor-field">
@Html.DisplayFor(model => model.Currency)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Rate)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Rate)
@Html.ValidationMessageFor(model => model.Rate)
</div>
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
}
Cambio @ Html.EditorFor (modelo => model.Currency) a @ Html.DisplayFor (modelo => model.Currency) no funciona debido a que el modelo de estado deja de ser válido cuando se mensajes de vuelta al controlador.
Esto también funciona en combinación con Twitter bootstrap, p. usando lo siguiente en la vista: ' @ Html.DisplayFor (m => m.ProductName)' – Manfred
¿El usuario no puede editar los campos read-olny a través de Firebug, etc.? – Sami