2011-01-11 10 views
3

こんにちは... 私のビューにアップロードコントロールがあります。このコントロールをモデルデータ(LabelForやTextBoxForなど)に関連付ける方法はありますか?私はこれが必要です。なぜなら、ページの読み込み時に、ファイルアップロードコントロールで私の情報が失われるからです。 ThxMVC - ファイルアップロード

答えて

0

はい、HttpPostedFileBaseクラスをプロパティタイプとして使用します。

+0

[HttpPost] public ActionResult Action(ViewModel model) { if (ModelState.IsValid) { // Use your file here using (MemoryStream memoryStream = new MemoryStream()) { model.File.InputStream.CopyTo(memoryStream); } } } 
? (http://www.w3.org/TR/html401/interact/forms.html#adef-enctype) – Cipiripi

+1

を再ロードされたときに、uploadfileの値が失われているのと同じ問題を抱えている – Paul

8

HTMLファイルのアップロードASP MVC 3

モデル:(FileExtensionsAttributeはMvcFuturesで利用可能であることを注意これは、ファイル拡張子、クライアント側とサーバー側を検証します。。)

public class ViewModel 
{ 
    [Required, Microsoft.Web.Mvc.FileExtensions(Extensions = "csv", ErrorMessage = "Specify a CSV file. (Comma-separated values)")] 
    public HttpPostedFileBase File { get; set; } 
} 

HTMLビュー

@using (Html.BeginForm("Action", "Controller", FormMethod.Post, new { enctype = "multipart/form-data" })) 
{ 
    @Html.TextBoxFor(m => m.File, new { type = "file" }) 
    @Html.ValidationMessageFor(m => m.File) 
} 

コントローラのアクション

私はまだページがあなたがにenctype = "multipart/form-データ" が設定持っている
関連する問題