отправленный файл всегда равен нулю при использовании базового класса httpPostedFileWrapper в пользовательском классе - PullRequest
0 голосов
/ 11 января 2019

Я пытаюсь переопределить метод SaveAs в httppostedfilewrapper. Я смог успешно использовать следующий код при использовании httppostedfilewrapper, но когда я делаю свой

Модель

public class UploadedFile : HttpPostedFileWrapper
{
    public UploadedFile(HttpPostedFile postedFile) : base(postedFile)
    {
    }

    public string Title { get; set; }
}

Просмотр моей viewmodel имеет свойство моего пользовательского класса (работает, если я здесь использую httppostedFileWrapper вместо UploadedFile

[NotMapped]
public UploadedFile File { get; set; }

здесь, в моем контроллере, всегда ноль

public async Task<ActionResult> Upload(CreateProfileVM editProfile)

вот мой взгляд

@using (Html.BeginForm("", "Profiles", FormMethod.Post, new { enctype = "multipart/form-data" }))

<div class="form-group">
        @Html.LabelFor(model => model.ImageFile, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.TextBoxFor(model => model.ImageFile, new { type = "file" })
            @Html.ValidationMessageFor(model => model.ImageFile, "", new { @class = "text-danger" })
            <br />
        </div>

пример работы результата (как вы видите, «Файл» содержит информацию enter image description here

пример результата, который не работает (здесь «Файл» имеет значение null) единственное изменение - это имя в модели View, либо мой пользовательский класс всегда равен NULL, а httpPostedFilewrapper не равен NULL ... enter image description here

Я просмотрел несколько ссылок, где это обсуждается, но, возможно, я не понимаю или не знаю, как это относится ко мне.

C # MVC-производный класс HttpPostedFileBase имеет значение null

https://forums.asp.net/t/1981337.aspx?C+MVC+derived+class+of+HttpPostedFileBase+is+null

любая помощь будет принята с благодарностью

Моя конечная цель - переопределить saveAs (), чтобы удалить все пробелы и создать собственное более безопасное имя файла для изображений, размещаемых на сервере.

Мое решение в настоящее время работает, когда я храню свой файл изображения "httpPostedFileWrapper" отдельно от моего пользовательского класса "uploadedImage", где httppostedFileWrapper сохраняет изображение, а загруженный файл сохраняет информацию в базу данных (заголовок, имя файла и т. Д.). Я делаю ошибку и усложняю ее, пытаясь унаследовать от HttpPostedFileWrapper?

...