ASP.NET MVC - загрузка файлов и привязка модели - PullRequest
1 голос
/ 27 января 2010

Я создаю страницу конкурса сочинений. Эссе может быть записано в текстовое поле или может быть загружено. Я новичок в asp.net mvc и последовал вместе с Sanderson Pro ASP.NET MVC Framework.

У меня проблемы с сохранением отправленного файла в оба конца из-за неудачной проверки поля.

Чтение это Я назвал свой входной файл таким же, как имя поля модели, и передаю его в качестве ввода в действие контроллера:

[AcceptVerbs(HttpVerbs.Post)]
public ViewResult SubmitEssay(Essay essay, bool acceptsTerms,
    HttpPostedFileBase essay_filepath,
    HttpPostedFileBase budget_filepath)
{
    if (!acceptsTerms)
        ModelState.AddModelError("acceptsTerms", 
                                 "You must accept the terms and conditions.");
    else
    {
        try
        {
            // stuff uploaded file values
            if (string.IsNullOrEmpty(essay.essay_filepath) 
                   && (essay_filepath!= null))
            {
                essay.essay_filepath = essay_filepath.FileName;
            }

            if (string.IsNullOrEmpty(essay.budget_filepath) 
                   && (budget_filepath != null))
            {
                essay.budget_filepath = budget_filepath.FileName;
            }

Это само по себе работает, но когда я иду к проверке других полей, при передаче туда и обратно поле загрузки файла больше не содержит путь загрузки, так что при повторной отправке после заполнения обязательных полей, нет размещенного файла.

Каков наилучший способ сохранить опубликованный файл в оба конца? Можете ли вы даже установить "значение" поля ? Должен ли я использовать два поля (одно скрытое) и установить поле ввода файла с помощью jQuery?

Что сделали другие?

Спасибо.

1 Ответ

0 голосов
/ 27 января 2010

Ответ, как вы можете видеть в комментариях, заключается в том, что я даже не должен пытаться делать это. Вместо этого я собираюсь добавить сообщение ValidationMessage, в котором говорится, что из-за ошибок файл должен быть снова выбран.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...