nopCommerce 2.40 Дополнение для редактирования продукта администратора - PullRequest
0 голосов
/ 20 марта 2012

Надеюсь, я смогу продвинуться вперед, поскольку форумы nopCommerce ничего не сказали о моем сообщении.Моя текущая ситуация такова, что для каждого продукта, который есть в нашем магазине, нам (администраторам) необходимо загрузить определенный документ и показать этот документ конечному пользователю, когда он просматривает раздел сведений о продукте, посредством ссылки и загрузки.

Так что я решил расколоть этот проект и сначала попытаться разработать функцию загрузки из области администратора.

Если кто-то может помочь, но не знает nopCommerce, это проект ASP.NET MVC 3.Для тех, у кого уже есть nopCommerce, ознакомьтесь, пожалуйста, с инструкциями по навигации и добавлению моего кода в определенные файлы.

1.Как добавить вкладку в Редактирование продукта:

a. Внутри Nop.Admin

i.Navigate to Views -> _CreateOrUpdate.cshtml

b.Добавить TabPanel после строки 24

x.Add().Text(T("Admin.Catalog.Products.ProductDocuments").Text).Content(TabProductDocuments().ToHtmlString());

c.Ввести справочный метод «TabProductDocuments» в строке772

@helper TabProductDocuments()
{
if (Model.Id > 0)
{
<h2>Product Documents</h2>
<form action="" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<input type="submit" />
</form>
}
else
{
@T("Admin.Catalog.Products.ProductDocuments.SaveBeforeEdit")
}
}

d.Change ProductDocumentsController.cs на более простой код:

public class ProductDocumentsController : BaseNopController
{
[HttpPost]
public ActionResult Index(HttpPostedFileBase file)
{
if (file.ContentLength > 0)
{
var fileName = Path.GetFileName(file.FileName);
var path = Path.Combine(HttpContext.Server.MapPath("../Content/files/uploads"), fileName);
file.SaveAs(path);
}
return RedirectToAction("Index");
}

Теперь проблема, с которой я сталкиваюсь, заключается в следующем: теперь я вижу вкладку в редакторе продукта, ноЯ не могу загрузить файл.Он отправляет запрос, но просто обновляет страницу и возвращает к списку товаров.Файл не загружен.Если вы можете, пожалуйста, помогите мне с попыткой правильно загрузить файл по указанному мною пути.Еще раз спасибо за вашу помощь.

Я уже пробовал с нуля проект загрузки, и он работает правильно, но по какой-то причине здесь он просто не работает.

Ответы [ 2 ]

1 голос
/ 08 января 2014

Возможно, немного поздно, но я сделал плагин для этого. Можно найти на github

https://github.com/johanlasses/nopcommerce-product-files-plugin

1 голос
/ 21 марта 2012

Возможно, вам нужен URL-адрес действия в параметре действия формы.

<form action="/Admin/Product/Upload/555" method="post" enctype="multipart/form-data">

И переименуйте ваш метод действия, чтобы соответствовать

[HttpPost]
public ActionResult Upload(int productId, HttpPostedFileBase file)
{
    if (file.ContentLength > 0)
    {
        var fileName = Path.GetFileName(file.FileName);
        var path = Path.Combine(HttpContext.Server.MapPath("../Content/files/uploads"), fileName);
        file.SaveAs(path);
        //attach the file to the product record in the database
     }
     return RedirectToAction("Index");
}
...