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.

Ответы на вопрос(2)

Ваш ответ на вопрос