ASP.Net MVC 5 carga de imágenes a la carpeta

Tengo una aplicación MVC5 muy simple que tiene una página de producto para el cliente que también estoy utilizando las operaciones básicas de CRUD que se han desarrollado en MVC 5.

Tengo un modelo llamado Cakes.cs porque el cliente vende pasteles. Bastante simple. Aquí está el código para ese modelo:

    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"; }
            }
        }
    }

Como puede ver, estoy usando una propiedad calculada para crear un nombre de imagen para cada pastel. Solo necesito 1 imagen para cada pastel. Ahora cuando voy a Editar un pastel en mis páginas CRUD. Me gustaría agregar una carga de imagen simple que cargue una imagen (sin necesidad de cambiar el tamaño o las miniaturas) Pero me gustaría imponer el nombre de propiedad calculado. En otras palabras: no importa cómo el usuario haya nombrado su foto, mi código de carga cambiará el nombre a Cakes.Name (menos espacios) + ". Jpg" y lo guardará en "~ Images / Cakes".

Solo necesito que la carga esté en la página de edición real, por lo que el pastel ya se habrá creado en este momento. Toda la información necesaria para cambiar el nombre del archivo debe estar disponible y ser fácil de utilizar desde la página Editar. A continuación se muestra mi código de página Editar:

Editar página:

@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>

He revisado algunas soluciones html5 y ASP.Net 4, pero esto es demasiado. Lo que quiero es muy simple. Cualquier idea o una patada en la dirección correcta sería muy apreciada. Estoy usando este código no solo para el sitio web de un cliente, sino también para incluirlo en un sitio web ficticio utilizado para enseñar conceptos MVC muy básicos.

Respuestas a la pregunta(2)

Su respuesta a la pregunta