ASP.Net [HiddenInput] -Datenattribut funktioniert nicht beim Rendern mit Html.EditorForModel in Razor?

Ich habe folgendes Modell:

public class Product
{
    [HiddenInput(DisplayValue = false)]
    public int ProductID { get; set; }

    [Required(ErrorMessage="Please enter a product name")]
    public string Name { get; set; }

    [Required(ErrorMessage="Please enter a description")]
    [DataType(DataType.MultilineText)]
    public string Description { get; set; }

    [Required]
    [Range(0.01, double.MaxValue, ErrorMessage="Please enter a positive price")]
    public decimal Price { get; set; }

    [Required(ErrorMessage="Please specify a category")]
    public string Category { get; set; }

    public byte[] ImageData { get; set; }

    [HiddenInput(DisplayValue = false)]
    public string ImageMimeType { get; set; }
}

Ich beziehe michSystem.Web.Mvc undSystem.ComponentModel.DataAnnotations.

Ich rendere dies dann aus meiner Sicht so:

<h1>Edit @Model.Name</h1>

@using (Html.BeginForm("Edit", "Admin", FormMethod.Post, new { enctype = "multipart/form-data" })) {
@Html.EditorForModel()

<div class="editor-lable">Image</div>
<div class="editor-=field">
    @if (Model.ImageData == null)
    {
        @:None
        }
    else
    {
        <img width="150" height="150" src="@Url.Action("GetImage", "Product", new { Model.ProductID })" />
    }
    <div>Upload new image: <input type="file" name="Image" . /></div>
</div>
<input type="submit" value="Save" />
@Html.ActionLink("Cancel and return to List", "Index")

}

Das Problem ist, dass während der[Required] Anmerkungen funktionieren ordnungsgemäß[HiddenInput] Felder verstecken sich eigentlich nicht. In der HTML-Quelle wird nicht einmal das versteckte Attribut angezeigt.

Warum nicht?Html.EditorForModel Anwendung der[HiddenInput] Attribut zu diesen Eigenschaften? Irgendwelche Ideen?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage