ASP.Net MVC 5 загрузка изображений в папку
У меня есть очень простое приложение MVC5, у которого есть страница продукта для клиента, и я также использую базовые операции CRUD, которые были представлены в MVC 5.
У меня есть модель под названием Cakes.cs, потому что клиент продает торты. Довольно просто Вот код для этой модели:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace TastyCakes.Models
{
public class Cakes
{
public int CakesID { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public decimal Price { get; set; }
public string CakeImage
{
get { return Name.Replace(" ", string.Empty) + ".jpg"; }
}
}
}
Как видите, я использую вычисляемое свойство для создания имени изображения для каждого торта. Мне нужно только 1 изображение для каждого торта. Теперь, когда я иду, чтобы Редактировать торт на моих страницах CRUD. Я хотел бы добавить простую загрузку изображений, которая будет загружать изображение (нет необходимости в изменении размера или эскизов), но я бы хотел навязать рассчитанное имя свойства. Другими словами: независимо от того, как пользователь назвал свою фотографию, мой код загрузки переименует ее в любое имя Cakes.Name (без пробелов) + ". Jpg" и сохранит в "~ Images / Cakes".
Я только требую, чтобы загрузка была на самой странице редактирования, поэтому торт уже будет создан на этом этапе. Вся информация, необходимая для переименования файла, должна быть доступна и проста в использовании со страницы редактирования. Ниже код моей страницы редактирования:
Отредактировать страницу:
@model TastyCakes.Models.Cakes
<div class="row">
<div class="large-12 columns">
<hgroup class="title">
<h1>Edit Cakes</h1>
</hgroup>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<hr />
@Html.ValidationSummary(true)
@Html.HiddenFor(model => model.CakesID)
<div class="medium-12 column">
@Html.LabelFor(model => model.Name)
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div>
<div class="medium-12 column">
@Html.LabelFor(model => model.Description)
@Html.EditorFor(model => model.Description)
@Html.ValidationMessageFor(model => model.Description)
</div>
<div class="medium-12 column">
@Html.LabelFor(model => model.Price)
@Html.EditorFor(model => model.Price)
@Html.ValidationMessageFor(model => model.Price)
</div>
<div class="medium-12 column">
<input type="submit" value="Save" class="tiny button" />
@Html.ActionLink("Back to List", "Index", null, new { @class = "tiny button" })
</div>
</div>
}
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
</div>
</div>
Я рассмотрел несколько решений html5 и ASP.Net 4, но это слишком много. То, что я хочу, очень просто. Любые идеи или удар в правильном направлении будут очень цениться. Я использую этот код не только для веб-сайта клиентов, но и для включения в вымышленный веб-сайт, который используется для обучения основам MVC.