Das Html-Helper Object des MVC2 Frameworks unterstützt kein Generieren von File-Input Steuerelementen. Hier ist ein Workaround für dieses Problem: Man überschreibt das Type-Attribut mit “file”.

<%: Html.TextBoxFor(model => model.File, new { size = "30", type = "file" }) %>


Der vollständige Code sieht folgendermaßen aus.

    // Modell mit der Eigenschaft "File" für die hochgeladene Datei
    public class UploadPartModel
    {
        [Required()]
        public HttpPostedFileWrapper File { get; set; }

        [Required()]
        public string Name { get; set; }

        [Required()]
        public string Description { get; set; }
    }

Das Formular wird mittels “Html.___For()” Methodne zusammengebaut. Nicht vergessen im Formular das “enctype”-Attribut mit dem Wert “multipart/form-data” zu setzen, sonst gibt es nicht serverseitig viel zu sehen.

    <% Html.EnableClientValidation(); // used for client side validation with jQuery
       using (Html.BeginForm(null, null, FormMethod.Post, new { enctype = "multipart/form-data" }))
       {
           Html.ValidationSummary(true); %>
    <fieldset>
        <legend>Fields</legend>
        <div class="editor-label">
            <%: Html.LabelFor(model => model.Name) %>
        </div>
        <div class="editor-field">
            <%: Html.TextBoxFor(model => model.Name, new { size = "30" })%>
            <%: Html.ValidationMessageFor(model => model.Name) %>
        </div>
        <div class="editor-label">
            <%: Html.LabelFor(model => model.Description)%>
        </div>
        <div class="editor-field">
            <%: Html.TextBoxFor(model => model.Description, new { size = "30" })%>
            <%: Html.ValidationMessageFor(model => model.Description)%>
        </div>
         <div class="editor-label">
            <%: Html.LabelFor(model => model.File) %>
        </div>
        <div class="editor-field">
            <%: Html.TextBoxFor(model => model.File, new { size = "30", type = "file" }) %>
            <%: Html.ValidationMessageFor(model => model.File) %>
        </div>
        <p>
            <input type="submit" value="Upload" />
        </p>
    </fieldset>
    <% } %>