Я работаю с проектом MVC5, я создал простую систему, которую пользователь может загрузить файл «CV» для каждого сотрудника. Теперь все работает для меня отлично, кроме «DELETING File». Мне нужно добавить метод действия для удаления загруженного файла и возможность его замены другим файлом.Удалить Загруженный файл в MVC5?
в классе модели Я создал два свойства HttpPostedFileBase CV, чтобы сохранить загруженный файл и String cvName, чтобы сохранить имя файла и использовать его для создания ссылки на этот файл.
В контроллере, что я сделал:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult DeleteCV(string cvName)
{
//Session["DeleteSuccess"] = "No";
var CVName = "";
CVName = cvName;
string fullPath = Request.MapPath("~/Content/CVs/" + CVName);
if (System.IO.File.Exists(fullPath))
{
System.IO.File.Delete(fullPath);
//Session["DeleteSuccess"] = "Yes";
}
return RedirectToAction("Index");
}
и это мнение:
<div class="form-group">
@Html.LabelFor(model => model.CV, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@{
if (File.Exists(Server.MapPath("~/Content/CVs/"
+ Html.DisplayFor(model => model.cvName))))
{
<a href="~/Content/CVs/@Html.DisplayFor(model => model.cvName)"> @Html.DisplayFor(model => model.cvName) @Html.HiddenFor(model => model.cvName)</a>
<a href="@Url.Action("DeleteCV", new { @Model.cvName })">
<img src="@Url.Content("~/Content/Images/Delete.jpg")" width="20" height="20" class="img-rounded" />
</a>
}
else
{
<input type="file" name="file" accept="pdf" />
}
}
</div>
</div>
Я не могу удалить файл, каждый раз, когда появляется это сообщение
Ресурс не найден.
Описание: HTTP 404. Ресурс, который вы ищете (или его зависимости), мог быть удален, изменилось его имя или временно недоступно. Просмотрите следующий URL-адрес и убедитесь, что оно написано правильно.
Запрошенный URL:/DeleteCV
Итак, что это вопрос? Кажется, ваш код в порядке. Что не работает? Какие сообщения об ошибках вы получаете (если есть)? –
Всего пару нот: наверняка это должно быть использование глагола DELETE? измените его, чтобы использовать HttpDelete, чтобы проверить семантику. Кроме того, в чем проблема? вы можете отправить сообщение об ошибке? – iwayneo
@iwayneo uhm, нет, вы не можете отправить DELETE из формы. И не называй меня Ширли. – CodeCaster