2011-03-04 15 views
13

Estoy usando el siguiente código para representar un editor para mi modelo utilizando ASP.NET MVC 3, funciona perfecto, excepto que no quiero que el usuario vea o edite el Campo "Id" en mi objeto.Html.EditorForModel y Ocultar elemento de Editar

<% using (Html.BeginForm()) 
    { %> 
    <%: Html.ValidationSummary(true, "Your input has errors, please correct and try again") %> 
    <%: Html.EditorForModel(Model)%> 

    <input type="submit" value="Update" /> 
<% } %> 

En mi modelo para el campo ID Tengo el siguiente

[Display(AutoGenerateField = false)] 
public int Id{ get; private set; } 

que concedió es lo que pensé que trabajar en base a la descripción del parámetro "AutoGenerateField". Sin embargo, esto no está funcionando. Yo no quiero tener que construir todo el editor sólo por esta pequeña rareza ....

Respuesta

20

Uso [ScaffoldColumn(false)] para ocultar campos

+1

Con el Tenga en cuenta que el campo no solo está oculto, sino que se omite por completo de la vista representada. Por lo tanto, no se devolverá como datos de formulario con solicitudes POST. – ProfK

+0

Me gustaría ver la solución de Darin Dimitrov si necesita su identificación vinculada a su solicitud posterior. –

18

Se puede usar el atributo [HiddenInput]:

[HiddenInput(DisplayValue = false)] 
[Display(AutoGenerateField = false)] 
public int Id { get; private set; } 
+0

'HiddenInput' es probablemente la mejor opción sobre' ScaffoldColumn (false) 'ya que la acción del controlador probablemente querrá correlacionar lo que está viendo con la base de datos de acuerdo con el' id' enviado. –

Cuestiones relacionadas