Как перенаправить на другой вид (UserControl '.ascx') в DotnetNuke?

Я новичок в DotnetNuke. Я не знаю всей терминологии DotnetNuke. Пожалуйста, поправьте меня. Это поможет мне улучшить.

У меня есть простой проект с 2 UserControl. 1- View.ascx, 2- ModuleInfo.ascx

1- View.ascx: содержит кнопку. Я хочу перенаправить его на другой пользовательский элемент управления ModuleInfo.ascxВот код.

protected void btn1_Click(object sender, EventArgs e)
{
    Response.Redirect(DotNetNuke.Common.Globals.NavigateURL("ModuleInfo"), true);
}

2- ModuleInfo.ascx Содержит статическую таблицу.

Как я добавил модуль в DotnetNuke:

1- Add .zip file of build project to Admin --> Extension
2- Edit Module from Host --> Extension --> Edit Module --> Edit Definition --> Add Module Control --> Added key "ModuleInfo" and selected view.
3- Created new page and added module to it. 

Когда страница загружается, View.aspx в порядке. Есть кнопка. Но когда я нажимаю на кнопку, она перенаправляет на какую-то страницу, но она пуста. Это должно показать таблицу.

Кто-нибудь может предложить мне, если я что-то здесь упускаю?

1 ответ

Решение

NavigateUrl должен включить tabId и moduleId в дополнительные аргументы, чтобы работать. Более простой способ перехода к представлениям внутри вашего модуля - просто использовать base.EditUrl(), который требует только viewKey ключа. Посмотрите фрагмент кода ниже, обе строки, которые устанавливают miUrl, эквивалентны.

protected void btn1_Click(object sender, EventArgs e)
{
    string miUrl = base.EditUrl("ModuleInfo");
    string miUrl = DotNetNuke.Common.Globals.NavigateURL(base.TabId, "ModuleInfo", String.Format("mid={0}", base.ModuleId));

    Response.Redirect(miUrl, true);
}
Другие вопросы по тегам