Загруженный HttpPostedFile является пустым

Вы можете использовать длину строки для вычисления множителя, используя Math.pow :

const usersCount = 23;    
const round = s => {
    let c = Math.pow(10, s.toString().length - 1);
    return Math.floor(s / c) * c;
};
console.log(round(usersCount)); // 20

const round = s => {
  let c = Math.pow(10, s.toString().length - 1);
  return Math.floor(s / c) * c;
};
[
  23,
  199,
  888,
  99999,
  100001
].forEach(x => {
  console.log(round(x));
});

19
задан alex 5 December 2014 в 14:24
поделиться

5 ответов

Это не отвечает, почему Ваш параметр является пустым, но можно вырыть в запрос непосредственно. Это не могло бы быть большей частью способа "MVC" сделать это все же. попробуйте это в теле метода:

var upload = Request.Files["postedFile"]
if (upload.ContentLength > 0)
{
  // Do whatever
}

, Чтобы быть большим количеством "MVC", Вы могли вытащить тот код из своего контроллера в реализацию IModelBinder и использование пользовательского объекта в качестве параметра к Вашему методу. Этот сообщение в блоге Scott Hanselman шоу шаги для реализации пользовательского ModelBinder.

7
ответ дан 30 November 2019 в 02:18
поделиться

Я также получаю некоторые причуды с <%= Html.BeginForm ...%>. Так, я использую использование. Снова, на стороне Контроллера, я просто захватываю свою загруженную форму файлов объект запроса.

Попытка это.Работает:

<% using (Html.BeginForm("Post", "Home", FormMethod.Post, new {enctype = "multipart/form-data"}))
   {%>

    <input type="file" id="postedFile" name="PostedFile" />
    <input type="submit" />

<%
}

%>

[AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Post(FormCollection form)
    {
      HttpPostedFileBase postedFile =   Request.Files["PostedFile"];
        return RedirectToAction("Index");
    }
2
ответ дан 30 November 2019 в 02:18
поделиться

Какую версию MVC Вы используете? Прямо сейчас с кандидатом RC я пытался использовать HttpPostedFile, и я добрался, "не имеет пустой ошибки конструктора". Я должен был использовать HttpPostedFileBase.

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

2
ответ дан 30 November 2019 в 02:18
поделиться

Используйте HttpPostedFileBase (не HttpPostedFile), а также назовите параметр точно так же, как в форме. например. если у вас

<input type="file" id="file1" name="file1" />

, у вас должна быть голова метода:

public ActionResult About(HttpPostedFileBase file1)
30
ответ дан 30 November 2019 в 02:18
поделиться

У меня была та же проблема:

Вы должны определить имя И идентификатор для входного элемента:

<input type="file" name="postedFile" id="postedFileId"  /> 

С уважением

Стефан

4
ответ дан 30 November 2019 в 02:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: