Доступ к основной почте ASP.Net запрещен - PullRequest
0 голосов
/ 22 сентября 2018

В настоящее время я делаю сайт электронной коммерции в ASP.Net Core.Я столкнулся с небольшой дилеммой.Я иду, чтобы добавить продукт, заполнить форму, а затем, когда я пытаюсь отправить форму, она открывает мою страницу 404 / access.

Это рабочий режим на веб-сервере Ubuntu 16.04.Тестирование локально, работает нормально.

Код:

[HttpGet]
public IActionResult AddProduct()
{
    return View(new ProductAddModel());
}

[HttpPost]
public async Task<IActionResult> AddProduct(ProductAddModel model, IFormFile file)
{
    if (ModelState.IsValid)
    {
        var path = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot/images/Products", file.FileName);
        using (var stream = new FileStream(path, FileMode.Create))
        {
            await file.CopyToAsync(stream);
        }

        var user = await userManager.FindByNameAsync(User.Identity.Name);
        ProductDataModel dataModel = new ProductDataModel()
        {
            Name = model.Name,
            ShortDescription = model.ShortDescription,
            Description = model.Description,
            Category = model.Category,
            Game = model.Game,
            Price = model.Price,
            ImagePath = file.FileName,
            DeveloperUserId = user.Id
        };
        context.Products.Add(dataModel);
        context.SaveChanges();
        return RedirectToAction("Products", "Admin");
    }
    return View(model);
}

Вот несколько скриншотов. Добавить продукт 404 / Доступ запрещен

1 Ответ

0 голосов
/ 24 сентября 2018

Я подозреваю, что вы включаете файл в форму?Итак, файл находится в модели, поэтому он не найдет маршрут.Добавьте IFormFile в модель:

[HttpPost]
public async Task<IActionResult> AddProduct(ProductAddModel model)
{
    if (ModelState.IsValid)
    {
        var path = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot/images/Products", model.File.FileName);
        using (var stream = new FileStream(path, FileMode.Create))
        {
           await model.File.CopyToAsync(stream);
        }

        var user = await userManager.FindByNameAsync(User.Identity.Name);
        ProductDataModel dataModel = new ProductDataModel()
        {
            Name = model.Name,
            ShortDescription = model.ShortDescription,
            Description = model.Description,
            Category = model.Category,
            Game = model.Game,
            Price = model.Price,
            ImagePath = model.File.FileName,
            DeveloperUserId = user.Id
        };
        context.Products.Add(dataModel);
        context.SaveChanges();
        return RedirectToAction("Products", "Admin");
    }
    return View(model);
}

Если это не работает, пожалуйста, покажите Startup.cs и файл AddProduct.cshtml

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