Мне нужно действие для создания типа MyModel
с некоторыми полями, а также некоторые файлы для загрузки в БД. Так что это часть моего обзора:Загрузить файл В MVC 3
@using(Html.BeginForm()) {
<fieldset>
<dl>
<dt>
@Html.LabelFor(model => model.Name)
</dt>
<dd>
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</dd>
<dt>
@Html.LabelFor(model => model.NeededFiles)
</dt>
<dd>
@foreach(var item in Model.NeededFiles) {
<div style="margin:5px;">
@Html.Label(item.Title)
<input type="file" name="@item.Name" />
</div>
}
</dl>
</fieldset>
<input type="submit" value="Create" class="button red" />
}
Но в пост действий У меня есть некоторые проблемы, чтобы получить путь к файлу: Это мое действие:
[HttpPost]
public ActionResult Create(MyModel ViewModel FormCollection collection, IEnumerable<HttpPostedFileBase> files) {
//....
}
Request.Files
является null
, так что я не могу используйте его, и я не знаю, почему. также файлы IEnumerable<HttpPostedFileBase>
- null. Затем я пытаюсь получить от FormCollection
поэтому я использую это:
string filePath = collection.GetValue(item.Name).AttemptedValue;
но filePath
только что вернулся файл Имя не путь к файлу, я не понимаю. когда я выбираю файл, я могу видеть весь путь во входных данных, но когда я хочу получить его только как имя файла. где моя проблема? Каково ваше предложение?