Как загрузить файлы в MVC asp.net core + обновление на сервере sql? - PullRequest
0 голосов
/ 09 февраля 2019

Я хочу загрузить файлы в MVC dot net core 2, я студент и новичок в этой технологии (здесь я прочитал некоторые вопросы и ответы, но ответа на этот вопрос нет).

У меня есть действие добавления &посмотреть на мою модель продукта.В представлении есть форма для создания продукта с некоторыми свойствами.Я также хочу добавить опцию для загрузки изображения - после нажатия на кнопку добавления, продукт должен быть сохранен в базе данных с использованием кода Entity Framework.

Я не использую ViewModel (и я неЯ не хочу решения с ним), но, возможно, позже я захочу создать класс для объекта изображения.Не сейчас (слишком много для меня).

Пожалуйста, помогите мне, как это сделать.Вот код.

Модель - Продукт:

public class Product
    {
        [Key]
        public Guid Id { get; set; }
        [Required]
        [StringLength(50, MinimumLength = 3)]
        public string Name { get; set; }
        [Required]
        public string Description { get; set; }
        [Required]
        public string Category { get; set; }
        [Required]
        public string Gender { get; set; }
        [Required]
        public string Age { get; set; }
        [Required]
        public bool ConditionIsNew { get; set; }
    }

Контроллер - ProductController

public class ProductController : Controller
    {
            [HttpGet]
            public IActionResult Add()
            {
                return View(new Product());
            }

            [HttpPost]
            public IActionResult Add(Product p)
            {
                if (ModelState.IsValid)
                {
                    ProductDal dal = new ProductDal();
                    dal.Products.Add(p);
                    dal.SaveChanges();
                    return View("Show", p);
                }
                return View(p);
            }
    }

Просмотр - Добавить (Синтаксис Razor, помощник по тегам)

@model MyProjectTest.Models.Product
    @{
        Layout = "~/Shared/_Layout.cshtml";
    }
<h1>Submit</h1>
    <h2>Add product</h2>
    <form asp-controller="Product" asp-action="Add" method="post">
            <label asp-for="Name"></label> <input asp-for="Name" /> <span asp-validation-for="Name"></span>
            <br />
            <label asp-for="Description"></label> <input asp-for="Description" /> <span asp-validation-for="Description"></span>
            <br />
            <label asp-for="Category"></label> <input asp-for="Category" /> <span asp-validation-for="Category"></span>
            <br />
            <label asp-for="Gender"></label> <input asp-for="Gender" /> <span asp-validation-for="Gender"></span>
            <br />
            <label asp-for="Age"></label> <input asp-for="Age" /> <span asp-validation-for="Age"></span>
            <br />
            <label asp-for="ConditionIsNew"></label> <input asp-for="ConditionIsNew" /> <span asp-validation-for="ConditionIsNew"></span>
            <br />
            <input id="SubmitProduct" type="submit" value="Enter" />
        </form>

Опять же, у меня нет ViewModel, и я не хочу его использовать.

Я также хочу знать, как обновить изображение в базе данных

Спасибо

Ответы [ 2 ]

0 голосов
/ 14 февраля 2019

Html layer: * input type = "file" name = "fileABC" />

Уровень контроллера: метод html post с параметром типа HttpPostedFileBase и именем fileABC (должен отделяться от параметра для модели в этомcase Модель продукта)

Для SQL: используйте blob, filestream ...

0 голосов
/ 09 февраля 2019

https://www.w3schools.com/tags/att_input_type_file.asp

и

https://docs.microsoft.com/en-us/aspnet/core/razor-pages/upload-files?view=aspnetcore-2.2

Одна вещь, которую вам нужно знать.Входные данные будут содержать двоичное представление загруженного файла, поэтому вам необходимо помнить, чтобы десериализовать / сериализовать его, если вы хотите каким-либо образом его использовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...