0

Я новичок в DotnetNuke. Я не знаю всей терминологии DotnetNuke. Пожалуйста, поправьте меня. Это поможет мне улучшить ситуацию.Как перенаправить на другой вид (UserControl '.ascx') в 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); 
} 
+0

Он отлично работает. Как я могу перенаправить на другой модуль? то есть я на модуле Test1, и я хочу перенаправить на Module Test2. В этом случае ключа не будет. Пожалуйста, предложите –

+1

Nanji, чтобы перейти к другому модулю, который относится к другому определению модуля, вам нужно знать как ModuleId, так и TabId, и вы можете использовать NavigateUrl(), как указано выше. Как правило, вы должны добавить настройки модуля для администратора, чтобы выбрать модуль и страницу, на которую они хотят перенаправить. Получение списка экземпляров всех модулей с использованием имени определения модуля может быть выполнено с помощью модуля ModuleController.GetModulesByDefinition(). – DotNetNuclear

 Смежные вопросы

  • Нет связанных вопросов^_^