0

私は主にこのチュートリアルに従っています: http://cpratt.co/file-uploads-in-asp-net-mvc-with-view-models/

ユーザーが画像をアップロードできるようにする優れた作成ビューを作成しました。

現在の画像ファイル (ユーザーが作成ビューで選択したときに表示されるものなど) を表示し、ユーザーが別の画像を選択できる同様のページを作成するにはどうすればよいですか?

@model ImageViewModel

<form action="" method="post" enctype="multipart/form-data">
    @Html.AntiForgeryToken()
    @Html.ValidationSummary(true)

    <div>
        Name:
        @Html.EditorFor(model => model.Name)
    </div>
    <div>
        Image Upload:
        @Html.TextBoxFor(model => model.ImageUpload, new { type = "file" })
    </div>
    <button type="submit">Edit</button>
</form>



public class ImageViewModel
{
    public string Name { get; set; }
    public HttpPostedFileBase ImageUpload { get; set; }
}

現在のところ、これにより、名前を変更して新しい画像をアップロードすることができます。現在の画像のファイル名を表示したいのですが、情報を HttpPostedFileBase 属性にアップロードする方法がわかりません (データベースは現在、作成からのファイル名/パスを保持しています)。

任意の考えをいただければ幸いです。ありがとう。

4

1 に答える 1

2

ImageViewModel に追加のプロパティを追加し、現在のファイル名をそのプロパティにバインドします。

public class ImageViewModel
{
    public string Name { get; set; }

    public string FileName { get; set; }

    public HttpPostedFileBase ImageUpload { get; set; }
}

編集ビューで、FileName プロパティを表示するだけです。

@model ImageViewModel

<form action="" method="post" enctype="multipart/form-data">

    @Html.AntiForgeryToken()
    @Html.ValidationSummary(true)

    <div>
        Name:
        @Html.EditorFor(model => model.Name)
    </div>
    <div>
        Current uploaded file:
        @Html.DisplayFor(model => model.FileName)
    </div>
    <div>
        Image Upload:
        @Html.TextBoxFor(m => m.ImageUpload, new { type = "file", value = "test" })
    </div>
    <button type="submit">Save</button>

</form>
于 2014-10-23T07:17:13.603 に答える