nopcommerce пытается добавить пользовательскую вкладку в админ-панели - PullRequest
0 голосов
/ 22 февраля 2019

Хорошо, поэтому для страницы редактирования категории я добавил пользовательскую вкладку в административной панели nopcommerce, поэтому я пытаюсь сделать то же самое для страницы редактирования производителя, но содержимое вкладки не отображается.

admin image

Вот код, который я использую:

using System.Web.Mvc;
using System.Web.Routing;
using Nop.Services.Events;
using Nop.Web.Framework.Events;

namespace Nop.Plugin.Widgets.Modifications.Events
{
/// <summary>
/// This class is used to detect when a Manufacturer is being edited in order to add a new tab for attachments.
/// </summary>
public class ManufacturerTabConsumer : IConsumer<AdminTabStripCreated>
{
    public void HandleEvent(AdminTabStripCreated eventMessage)
    {
        if (eventMessage.TabStripName == "manufacturer-edit")
        {
            //Manufacturer Attachments tab
            var manufacturerId = eventMessage.Helper.ViewContext.RequestContext.RouteData.Values["Id"];

            var urlHelper = new UrlHelper(eventMessage.Helper.ViewContext.RequestContext)
                .RouteUrl("Nop.Plugin.Widgets.Modifications.Admin.ManufacturerAttachments",
                    new RouteValueDictionary { { "manufacturerId", manufacturerId } });

            eventMessage.BlocksToRender.Add(new MvcHtmlString("<script>" +
                                                              "$(document).ready(function() {" +
                                                              "var tabStrip = $('#manufacturer-edit').data('kendoTabStrip').append({" +
                                                              "text: 'Attachments'," +
                                                              "animation: { open: { effects: 'fadeIn'} }," +
                                                              "contentUrl: '" + urlHelper + "'" +
                                                              "});" +
                                                              "});" +
                                                              "</script>" +
                                                              "<style>.k-link {font-weight: bold;}</style>"));
        }
    }
}

}

Когда я устанавливаю точку останова и получаюк этому фрагменту кода он говорит мне, что var urlHelper имеет значение null, хотя я не уверен, почему.

var urlHelper = new UrlHelper(eventMessage.Helper.ViewContext.RequestContext)
                .RouteUrl("Nop.Plugin.Widgets.Modifications.Admin.ManufacturerAttachments",
                    new RouteValueDictionary { { "manufacturerId", manufacturerId } });

Кто-нибудь знает, почему это может быть нулем?Спасибо.

1 Ответ

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

OMG, конечно, правильно, когда я отправляю свой вопрос, я вижу проблему, я забыл изменить код из маршрута, который я скопировал.Иногда копирование и вставка - мой злейший враг.

Пришлось сменить категориюId на изготовителя.не знаю, как я это пропустил: (

...