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>
<% } %>

Kommentare
Kommentar hinterlassen