1. ホーム
  2. asp.net-mvc

[解決済み] <input type="file" />用HTMLヘルパー

2022-06-30 16:54:30

質問

このような HTMLHelper はありますか?具体的には、以下のように置き換えて欲しいのです。

<input type="file"/>

ASP.NET MVC HTMLHelperを使用しています。

あるいは、もし私が

using (Html.BeginForm()) 

ファイルアップロードのためのHTMLコントロールは何ですか?

どのように解決するのですか?

HTMLは、ファイルをASP MVC 3をアップロードします。

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

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

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

[HttpPost]
public ActionResult Action(ViewModel model)
{
    if (ModelState.IsValid)
    {
        // Use your file here
        using (MemoryStream memoryStream = new MemoryStream())
        {
            model.File.InputStream.CopyTo(memoryStream);
        }
    }
}