CascadingDropDown в модуле DotNetNuke => [Ошибка метода 500]
Я создаю модуль DotNetNuke 4.x, и мне нужен AJAX CascadingDropDown в моем модуле. Я определил это следующим образом ...
<asp:UpdatePanel runat="server" ID="CascadingDropDowns">
<ContentTemplate>
<asp:DropDownList runat="server" ID="SelectGroupDropDownList">
</asp:DropDownList>
<ajax:CascadingDropDown runat="server" ID="SelectGroupDropDownListExtender" Category="Group"
TargetControlID="SelectGroupDropDownList" PromptText="Select a Group" ServiceMethod="GetGroups">
</ajax:CascadingDropDown>
<!-- more dropdowns & cascadingdropdown extenders here -->
С методом страницы, определенным в коде ascx следующим образом ...
[WebService]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService()]
public partial class EligibilityView : PortalModuleBase
{
[WebMethod]
[ScriptMethod]
public CascadingDropDownNameValue[] GetGroups(string knownCategoryValues, string category)
{
var results = new List<CascadingDropDownNameValue>();
// code here to fill the list with values...
return results.ToArray();
}
Когда я запускаю страницу, я получаю «[Ошибка метода 500]» - и не могу понять, что, черт возьми, я делаю не так. Я думаю, что проблема в том, что страница не может найти веб-метод, потому что он определен внутри элемента управления ASCX, а не сама страница. Мне действительно нужно сохранить его таким образом - а не создавать службу ASMX - поскольку он будет скомпилирован в модуль для DotNetNuke, и я хочу, чтобы внутри модуля все было просто.
Любые предложения будут ценны.
Ответов (1)1
Я не думаю, что будет простой способ получить доступ к этому методу веб-службы, пока он находится в ASCX. «Простой» в этом случае, вероятно, означает добавление ASMX к модулю.
Есть ли причина, по которой вы думаете, что добавление ASMX будет проблемой?
Добавление другого файла в пакет модуля должно включать тот же процесс, который вы использовали бы для добавления самого элемента управления. В манифесте вам просто нужно указать его в разделе файлов, а затем убедиться, что он попадает в пакет. Вы также можете использовать zip-файл ресурса в пакете и просто указать этот zip-архив, убедившись, что ваши файлы .ascx и .asmx (и любые другие файлы содержимого) находятся там.