Как перенаправить на другой вид (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);
}